java - 在 Glassfish 中将 Gemini 蓝图部署到 Felix

标签 java jakarta-ee glassfish osgi apache-felix

我有一个使用 Spring 并在 Glassfish 3.1.2 中运行的 Java Web 应用程序,我正在尝试将其转换为 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 应用程序的示例,所以我想我可能做错了一些事情。

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

最佳答案

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

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

关于java - 在 Glassfish 中将 Gemini 蓝图部署到 Felix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13055388/

相关文章:

java - Web 服务生成和 JavaBeans 有何关系?

mysql - Eclipse JPA 和 MySQL - JPA 方面的通用与 Eclipse Link 平台

java - 如何杀死所有 glassfish 实例

module - 如何控制 glassfish 模块的启动顺序

java - 使用 Apache Commons Exec 运行进程时从控制台获取所有输出数据

java - 从 session 对象获取值

java - Android - 复选框在 ListView 中每 10 个重复一次

java - 为什么在 java 中使用 getbytes() 时值会在每次运行时发生变化..?

java - 绑定(bind)用户实体和 GlassFish 主体

java - Camel 和 MQTT 路由