在Pax-Web中创建Jetty连接器

时间:2014-12-23 11:11:52

标签: jetty apache-karaf karaf pax pax-web

是否有可能(API)以编程方式通过Pax-Web添加Jetty连接器。 Pax-Web内部使用了一个不错的JettyServer接口,但似乎没有可用的OSGi服务。必须提供的端口不可提前知道,因此我无法使用jetty.xml进行配置。

有人有想法吗?

2 个答案:

答案 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/