是否有可能(API)通过 Pax-Web 以编程方式添加 Jetty 连接器。Pax-Web 内部使用了一个不错的JettyServer
界面,但似乎没有可用的 OSGi 服务。必须可用的端口事先不知道,所以我不能jetty.xml
用于配置目的。
有人有想法吗?
是否有可能(API)通过 Pax-Web 以编程方式添加 Jetty 连接器。Pax-Web 内部使用了一个不错的JettyServer
界面,但似乎没有可用的 OSGi 服务。必须可用的端口事先不知道,所以我不能jetty.xml
用于配置目的。
有人有想法吗?
由于您似乎只是想更改端口,因此您应该使用 OSGi 方式并使用适当的配置配置 pax web。另请参阅:https ://ops4j1.jira.com/wiki/display/paxweb/Basic+Configuration
有问题的配置是 org.osgi.service.http.port
该端口可以通过配置管理服务进行配置。如果配置更改,码头服务器将重新启动。
关于服务的最初问题,目前还不可能,但有一个可用的 JIRA 问题,非常感谢您的贡献。
从 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/