是否有可能(API)以编程方式通过Pax-Web添加Jetty连接器。 Pax-Web内部使用了一个不错的JettyServer
接口,但似乎没有可用的OSGi服务。必须提供的端口不可提前知道,因此我无法使用jetty.xml
进行配置。
有人有想法吗?
答案 0 :(得分:0)
由于您似乎想要更改端口,您应该使用OSGi方式,并使用适当的配置配置pax web。另见:https://ops4j1.jira.com/wiki/display/paxweb/Basic+Configuration
有问题的配置是 org.osgi.service.http.port
此端口可由config admin服务配置。如果配置更改,将重新启动jetty服务器。
关于服务的初始问题,现在不可能,但有一个JIRA问题可供使用,我们非常感谢您的贡献。
答案 1 :(得分:0)
从PaxWeb 4.1.0开始,您可以通过将它们注册为服务来注册所需的连接器(例如,它允许排除针对Poodle漏洞的SSL协议)
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);
主要来自pax网络文档http://ops4j.github.io/pax/web/SNAPSHOT/