如何使用jetty在karaf的不同端口启动OSGi捆绑包
我有多个OSGi bundle,希望从不同的端口公开这些bundle。基本上,bundles有restapi,我想在不同的端口上运行API 我的restapi包jars具有jaxrs:server配置如何使用jetty在karaf的不同端口启动OSGi捆绑包,jetty,osgi,apache-karaf,osgi-bundle,pax-web,Jetty,Osgi,Apache Karaf,Osgi Bundle,Pax Web,我有多个OSGi bundle,希望从不同的端口公开这些bundle。基本上,bundles有restapi,我想在不同的端口上运行API 我的restapi包jars具有jaxrs:server配置 <jaxrs:server id="services" address="/logger"> </jaxrs:server> 我可以使用下面提供的配置启动多个连接器 <Call name="addConnector"> <Arg>
<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>
300000
2.
假的
8443
20000
5000
jettyConn2
是的,只要您的JAXR由不同的servlet提供服务,这些servlet在不同的web应用程序包(WAB)中配置。
您需要确保所有应用程序包都包含所需的标题:
WebContext-Path: /logger
Web-Connectors: jettyConn2
除非您的jaxrs框架有一个使用自己的WebContext路径注册的中心servlet,否则这应该适合您 谢谢。这解决了我的问题。但现在的问题是服务可以从两个URL访问。例如/cxf/logger和/logger/logger。因为cxf是默认的servlet,我想我们不能删除它。如何将配置更改为仅从一个URL访问?请查看有关CXF的文档,可以为其切换到另一个路径。