2014-12-23 12 views
1

프로그래밍 방식으로 Pax-Web을 통해 Jetty 커넥터를 추가 할 수있는 가능성 (API)이 있습니까? Pax-Web은 내부적으로 멋진 JettyServer 인터페이스를 사용하지만 OSGi 서비스가없는 것으로 보입니다. 사용할 수 있어야하는 포트는 미리 알 수 없으므로 구성 목적으로 jetty.xml을 사용할 수 없습니다.Pax-Web에서 Jetty 커넥터 만들기

누구에게 아이디어가 있습니까?

답변

0

포트를 변경하고 싶다면 OSGi 방식을 사용하고 적절한 구성으로 pax web을 구성해야합니다. 여기 참조 : 문제의 https://ops4j1.jira.com/wiki/display/paxweb/Basic+Configuration

구성은 org.osgi.service.http.port

이 포트는 구성 관리 서비스를 구성 할 수있다. 구성이 변경되면 부두 서버가 다시 시작됩니다.

서비스에 관한 초기 질문에 대해서는 지금 당장은 불가능하지만 JIRA 문제가 있으므로 이용이 가능하며 매우 기쁩니다. PaxWeb에서 시작

+0

문제는 여러 포트 (두 개 이상)가 필요하며 각 공급자를 특정 포트에 바인딩하려는 것입니다. org.osgi.service.http.port 속성은 하나의 포트 만 허용합니다. 그만큼 충분하지 않습니다. –

+0

그럴 경우 예,이 기능이 향상 될 수 있습니다. 기고 물 환영합니다. :-) –

+0

좋아, 다음 버전 4.1. https://ops4j1.jira.com/browse/PAXWEB-768 –

0

당신이 서비스로 등록하여 필요한 커넥터를 등록 할 수 있습니다 4.1.0

SslContextFactory contextFactory = new SslContextFactory(); 
    contextFactory.addExcludeProtocols("SSLv2Hello", "SSLv3"); 
    contextFactory.setKeyStorePath("PATH_TO_KEYSTORE"); 
    contextFactory.setKeyStorePassword("KEYSTORE_PASSWORD"); 
    contextFactory.setTrustStore("PATH_TO_TRUSTSTORE"); 
    contextFactory.setTrustStorePassword("TRUSTSTORE_PASSWORD"); 
    contextFactory.setNeedClientAuth(true); 
    contextFactory.setWantClientAuth(true); 

    Connector sc = new SslSelectChannelConnector(contextFactory); 
    sc.setPort(8443); 
    ServiceRegistration<Connector> registerService = bundleContext.registerService(Connector.class, sc, null); 

주로 인원 웹 문서 http://ops4j.github.io/pax/web/SNAPSHOT/에서 가져온 (이 푸들 취약점에 대한 SSL 프로토콜을 제외 할 경우 가능)

+0

Jetty 9.2.x를 사용하고 있으며'SelectChannelConnector' 또는'SslSelectChannelConnector' 클래스를 더 이상 사용할 수 없습니다. PaxWeb에 의해 노출되지 않는 인스턴스화를 위해'Server'가 필요한'ServerConnector' 클래스가 있습니다. –