我想在servlet中集成一些现有的OSGi包和片段,并在Tomcat 7上运行它。遵循本教程http://www.javaworld.com/javaworld/jw-06-2008/jw-06-osgi3.html我设法在服务器上运行bundle。 我读过,片段没有生命周期,所以我假设,我只需要运行包,并自动找到片段。然而,当在服务器上启动捆绑包时,似乎找不到OSGi片段。在OSGi控制台上调用“ss”,我可以看到我的包是活动的。片段的状态为“INSTALLED”。
31 ACTIVE myBundle
34 INSTALLED myFragment
由于bundle中片段的集成有效,当我在Eclipse中运行它(作为OSGi平台)时,我认为Manifest.MF文件是正确的。这个假设是否正确?
还是我错过了另一个观点?我是否需要以某种方式“启动”片段?
谢谢!
答案 0 :(得分:1)
我刚刚在这里找到答案: How do I ensure my OSGi fragments get installed before the host bundle?
引用:“人们在OSGi中最常见的错误之一就是在安装后立即尝试启动每个捆绑包。你不能这样做,也就是说,在你安装了所有捆绑包之前,你不应该启动任何捆绑包。打算跑。“