我有一个使用Spring的Java Web应用程序并在Glassfish 3.1.2中运行,我正在尝试将其转换为OSGi架构。
我开始下载Gemini蓝图并将jar文件复制到Glassfish中的autodeploy/bundle
目录,此时我收到了很多关于缺少需求的错误,如下所示:
[#|2012-10-24T12:58:07.176 0500|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_Thread
ID=18;_ThreadName=Thread-5;|org.osgi.framework.BundleException:
Unresolved constraint in bundle org.eclipse.gemini.blueprint.core [258]:
Unable to resolve 258.1: missing requirement [258.1] osgi.wiring.package; (&(osgi.wiring.package=org.aopalliance.aop)(version>=0.0.0))
org.apache.commons.logging
等类似的错误。
我一直在阅读很多关于OSGi和Glassfish的内容,但我无法找到为Glassfish创建OSGi spring应用程序的任何示例,所以我想也许我做错了。
任何人都有任何想法,我在做什么是正确的,如果是,如何解决这些问题。
答案 0 :(得分:1)
看来你正试图在glassfish中运行osgi容器。如果是这样,你必须使用或编写一种osgi引导程序,它将启动osgi容器。它应该使用必要的bundle启动osgi容器,这是osgi容器的最小集合,可以为下一个bundle部署做好准备。
更新的答案: 根据错误消息,您的Gemini捆绑包似乎需要在容器中尚未提供的捆绑包。您需要弄清楚从其他软件包导入的软件包/类是什么,并在部署Gemini之前安装并启动它们。你可以通过检查Gemini包的清单来做到这一点