Java 在Glassfish中向Felix部署双子座蓝图

Java 在Glassfish中向Felix部署双子座蓝图,java,jakarta-ee,glassfish,osgi,apache-felix,Java,Jakarta Ee,Glassfish,Osgi,Apache Felix,我有一个Java Web应用程序,使用Spring并在Glassfish 3.1.2中运行,我正在尝试将其转换为OSGi架构 我从下载Gemini blueprint开始,并将JAR复制到Glassfish中的autodeploy/bundle目录,在这一点上,我收到了许多关于缺少需求的错误,如下所示: [#|2012-10-24T12:58:07.176 0500|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterpris

我有一个Java Web应用程序,使用Spring并在Glassfish 3.1.2中运行,我正在尝试将其转换为OSGi架构

我从下载Gemini blueprint开始,并将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应用程序的例子,所以我想我可能做错了什么


任何人都知道我所做的是否正确,如果正确,如何解决这些问题

似乎您正在尝试在glassfish中运行osgi容器。如果是这样,您必须使用或编写一种osgi引导程序来启动osgi容器。它应该使用必要的bundle启动osgi容器,这是osgi容器为下一个要部署的bundle做好准备的最小设置

最新答复:
根据错误消息,您的Gemini捆绑包似乎需要捆绑包,但该捆绑包在容器中还不可用。您需要弄清楚它从其他bundle导入的包/类是什么,并在部署Gemini之前安装和启动它们。你可以通过检查双子座捆绑的清单来做到这一点,您是想在glassfish中运行osgi容器还是想在osgi容器中运行glassfish?@wins对于当前的Web应用程序,我正在运行glassfish 3.1,据我所知,它在osgi容器中运行,我正在尝试通过部署到Felix,将当前Web应用程序中的JAR转换为与glassfish捆绑运行(将JAR复制到自动完成)。我还没有在Glassfish中安装任何东西。在这种情况下,根据错误消息,您的Gemini捆绑包似乎需要捆绑包这在容器中还不可用。在部署Gemini之前,您需要弄清楚它从其他捆绑包导入的包/类是什么,并安装和启动它们。您可以通过检查Gemini捆绑包的清单来完成。我想做的所有事情都是以尽可能简单的方式使用OSGi在Glassfish中运行spring。我认为Gemini蓝图提供了“绑定”为了让spring像这样工作,这就是我将其部署到Glassfish的原因。我的方法应该是什么?请查看问题区域中的我的评论。我无法理解您在编写此答案时提出的问题。我将删除此答案只需更新您提供的答案,以及您在问题区域中所做的评论我起初认为这很奇怪t gemini的交付没有基本的依赖关系,但当我想到它时,它会出现spring和许多其他包。