如何使用jetty在karaf中的不同端口启动OSGi包

时间:2014-08-01 09:16:27

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

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

我的REST API包jars正在使用jaxrs:服务器配置。

 <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>

1 个答案:

答案 0 :(得分:0)

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

WebContext-Path: /logger
Web-Connectors: jettyConn2

除非你的jaxrs框架有一个中心servlet注册自己的WebContext-Path,否则这应该对你有用。