从事一个运行嵌入式 Jetty 网络服务器及其基础设施的项目。我们正在考虑添加一个新的 Web 应用程序,该应用程序将从允许使用 OSGi 插入 View 中获益匪浅。 Vaadin 是我们选择的网络框架。
有关在 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 对我们来说根本不是一个选择,因为我们必须使用现有的部署。
最佳答案
您应该能够通过 org.osgi.framework.launch.FrameworkFactory 嵌入任何 4.2 兼容的框架。类(class)。如果你用谷歌搜索,有几个很好的例子,两个很好的例子在 Felix site 上。 , 和 Neil Barlett's blog .
配置它的工作量要大得多 - 您需要通过系统属性 org.osgi.framework.system.packages.extra 导出所有 Jetty 和 servlet 包,并使用类似 Felix fileinstall 的东西或控制台和pax-url取消/部署包。
虽然您的 Vaadin 应用程序将是动态的 - Jetty 或嵌入应用程序中的任何内容都将是动态的(即域实体、服务等)。
关于java - 在嵌入式 Jetty Web 容器中运行 OSGi 容器。可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10433521/