是否可以将 osgi-equinox 引入现有的 java Apache Tomcat 项目?据我了解,OSGI 必须在某种“容器”内运行。我将如何整合它?
我也将Jersey用于 RESTful 资源。
你可能想看看这个问题:OSGI runtime inside traditional Java EE server。
在这个桥接模型中,安装了一个特殊的 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 的容器)作为捆绑包插入 OSGi 运行时。