将Equinox OSGi集成到Apache Tomcat Web应用程序中

是否有可能将osgi-equinox引入现有的Java Apache Tomcat项目? 根据我的理解,OSGI必须在某种“容器”中运行。 我该如何整合它?

我也在使用Jersey来获取RESTful资源。

您可能希望看一下这个问题: 传统Java EE服务器中的OSGI运行时 。

在此桥模型中,安装了一个特殊的servlet,Tomcat调用此servlet来处理请求。 OSGi运行时是从这个servlet中生成的,但OSGi运行时本身(例如equinox)与HTTP之类的东西无关。 还安装了OSGi HTTP服务包,您需要针对此OSGi HTTP服务注册您的Web应用程序(servlet,jsp,…)以处理传入的请求。 因此,并不是说有一个单独的“Web服务器”可以说它在自己的端口上侦听并在Tomcat外部管理HTTP。 您的里程可能会有所不同,但开销基本上限于OSGi HTTP服务在将请求从Tomcat连接器转发到您的servlet时可能添加的内容。

如果无法更改现有部署模型,则需要此桥模型。 从长远来看,更好的模型是首先拥有OSGi运行时,并将Tomcat(或任何其他符合OSGi的容器)作为bundle插入OSGi运行时。