0

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

我首先下载 Gemini 蓝图并将 jar 复制到autodeploy/bundleGlassfish 中的目录,此时我收到了很多关于缺少要求的错误,如下所示:

[#|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 应用程序的示例,所以我想我可能做错了什么。

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

4

1 回答 1

1

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

更新的答案:根据错误消息,您的 Gemini 捆绑包似乎需要容器中尚不可用的捆绑包。您需要弄清楚它从其他包中导入的包/类是什么,并在部署 Gemini 之前安装和启动它们。您可以通过检查 Gemini bundle 的清单来做到这一点

于 2012-10-24T18:32:45.663 回答