在嵌入式 Jetty Web 容器内运行 OSGi 容器。可能的?

Posted

技术标签:

【中文标题】在嵌入式 Jetty Web 容器内运行 OSGi 容器。可能的?【英文标题】:Running OSGi Container Inside Embedded Jetty Web Container. Possible? 【发布时间】:2012-05-13 02:16:05 【问题描述】:

从事一个运行嵌入式 Jetty Web 服务器及其基础架构的项目。我们正在考虑添加一个新的 Web 应用程序,该应用程序将极大地受益于允许使用 OSGi 插入视图。 Vaadin 是我们首选的 Web 框架。

有一个关于在 GlassFish 中创建 OSGi 可插入 Vaadin 应用程序的很棒的教程,其中 Web 容器和 OSGi 容器是桥接的。也就是说,Web 容器没有在 OSGi 容器中运行。教程如下:https://vaadin.com/wiki/-/wiki/Main/Creating%20a%20Modular%20Vaadin%20Application%20with%20OSGi

我的问题是。是否可以按照本教程中描述的相同方式桥接嵌入式 Jetty Web 容器和 OSGi 容器。

在 OSGi 容器中运行 jetty 对我们来说根本不是一种选择,因为我们必须使用现有的部署。

【问题讨论】:

【参考方案1】:

您应该能够通过 org.osgi.framework.launch.FrameworkFactory 类嵌入任何符合 4.2 的框架。如果你用谷歌搜索,有几个很好的例子,Felix site 和 Neil Barlett's blog 上有两个很好的例子。

配置它需要更多的工作——你需要通过系统属性 org.osgi.framework.system.packages.extra 导出所有的 Jetty 和 servlet 包,并使用类似Felix fileinstall 或控制台和@ 987654325@ 取消/部署捆绑包。

虽然您的 Vaadin 应用程序将是动态的 - Jetty 或嵌入应用程序将不会是动态的(即域实体、服务等)。

【讨论】:

【参考方案2】:

你能嵌入一个不同的容器吗? Eclipse Virgo 和 JBoss AS 都是 OSGi 和 J2EE 容器。

http://www.eclipse.org/virgo/ http://www.jboss.org/as7

【讨论】:

以上是关于在嵌入式 Jetty Web 容器内运行 OSGi 容器。可能的?的主要内容,如果未能解决你的问题,请参考以下文章

使用在后台运行的 REST Web 服务的 OSGi 网站

Jetty嵌入式Web容器攻略

Java使用Jetty实现嵌入式Web服务器及Servlet容器

jetty插件

jetty 支持内嵌ssh项目吗,为啥在tomcat下面正常的war 放到jetty就跑不起来

Jetty简介