【问题标题】:Create Jetty Connectors in Pax-Web在 Pax-Web 中创建 Jetty 连接器
【发布时间】:2014-12-23 11:11:52
【问题描述】:

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

有人有想法吗?

【问题讨论】:

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


    【解决方案1】:

    由于您似乎只是想更改端口,因此您应该使用 OSGi 方式并使用适当的配置配置 pax web。也可以在这里查看:https://ops4j1.jira.com/wiki/display/paxweb/Basic+Configuration

    有问题的配置是 org.osgi.service.http.port

    此端口可以通过配置管理服务进行配置。如果配置更改,码头服务器将重新启动。

    关于服务的最初问题,目前还不可能,但存在可用的 JIRA 问题,我们非常感谢您的贡献。

    【讨论】:

    • 问题是我需要几个端口(不止一个),我想将每个提供程序绑定到一个特定的端口。 org.osgi.service.http.port 属性只允许一个端口。这还不够。
    • 在这种情况下是的,这可能是一个很好的增强。欢迎投稿。 :-)
    • 好的,下一个4.1版本。会有一些东西,见ops4j1.jira.com/browse/PAXWEB-768
    • 这听起来很不错...一个非常好的解决方案是创建一个也使用 OSGi 声明式服务的解决方案。我们可以使用 Configuration Admin 的功能并将连接器实例绑定到其配置(ManagedServiceFactory)。我做了几次,它将为您提供一个非常灵活的解决方案,允许从外部创建和(重新)配置连接器实例。
    • 我已经实现了一个基于 Equinox HTTP 服务的手工解决方案。它可以工作,但现在必须在 Apache Karaf 中运行,我的解决方案不完全适合这个环境。它正在工作,但是依靠官方实现会很好。也许将来通过 Pax Web 4.1 和 Apache Karaf 4.0 ;-)
    【解决方案2】:

    从 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 web文档http://ops4j.github.io/pax/web/SNAPSHOT/

    【讨论】:

    • 我正在使用 Jetty 9.2.x 并且类 SelectChannelConnectorSslSelectChannelConnector 不再可用。现在有类 ServerConnector 需要 Server 进行实例化,PaxWeb 没有公开。
    猜你喜欢
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    相关资源
    最近更新 更多