在嵌入式 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 容器。可能的?的主要内容,如果未能解决你的问题,请参考以下文章
Java使用Jetty实现嵌入式Web服务器及Servlet容器