OSGi 组件可以部署在任何 Servlet 容器中吗?

Can OSGi components be deployed in any Servlet containers?

OSGi 组件可以像 Tomcat/Websphere/JBoss..etc 一样部署到任何容器吗? (就像我们部署 WAR 文件一样)或者他们是否需要任何特殊的库或 OSGi 容器来 运行 OSGi 组件?

OSGi 组件(我猜你是指捆绑包)需要一个 OSGi 框架才能 运行 进入。因此普通的 servlet 容器将无法工作。 JBoss 的某些版本虽然提供了对 OSGi 的支持。

如果您只想公开 "component" 类,您可以将 jar 文件视为 ..jar 文件。

如果您将 OSGi "component" 视为 "bundle" 公开某些服务并执行某些操作,那么答案是 "no"。您需要一个 OSGi 容器(Karaf、WebSphere Liberty、Carbon、Glassfish、JBoss WildFly ...)。

但是 - 如您所见,某些应用程序服务器本身提供 OSGi 支持。