0

我有多个OSGi 包,并希望从不同的端口公开这些包。基本上 bundles 有REST API,我想在不同的端口上运行 API。

我的 REST API 包 jar 具有 jaxrs:server 配置。

 <jaxrs:server id="services" address="/logger">

 </jaxrs:server>

我可以使用下面提供的配置启动多个连接器。

 <Call name="addConnector">
    <Arg>
        <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <Set name="host">
                <Property name="jetty.host" />
            </Set>
            <Set name="port">
                <Property name="jetty.port" default="8282" />
            </Set>
            <Set name="maxIdleTime">300000</Set>
            <Set name="Acceptors">2</Set>
            <Set name="statsOn">false</Set>
            <Set name="confidentialPort">8443</Set>
            <Set name="lowResourcesConnections">20000</Set>
            <Set name="lowResourcesMaxIdleTime">5000</Set>
            <Set name="name">jettyConn2</Set>
        </New>
    </Arg>
</Call>
4

1 回答 1

0

是的,只要您的 jaxrs 由不同的 servlet 提供服务,这些 servlet 配置在不同的 Web 应用程序包 (WAB) 中。您需要确保所有应用程序包都包含所需的标头:

WebContext-Path: /logger
Web-Connectors: jettyConn2

除非您的 jaxrs 框架有一个使用自己的 WebContext-Path 注册的中央 servlet,否则这应该适合您。

于 2014-08-01T16:39:33.093 回答