【问题标题】:OSGi EE applicationOSGi EE 应用程序
【发布时间】:2015-06-28 13:30:52
【问题描述】:

我对如何创建我的 Java EE 应用程序感到困惑。我不确定条款,但假设我想将常用的 java 应用程序转换为 OSGi(war 文件)

我可以使用 GlassFish“混合捆绑包”,它们是 Glassfish 特有的吗?如果我理解正确,Java EE 服务只是以 OSGi 服务的形式提供的。

我可以在普通的 Apache Felix 中使用为 Glassfish 编写的 WAB 吗? GlassFish EE OSGi 服务是 Apache Aries 提供的吗?所以我既可以在 Glassfish 中运行,也可以在 Felix 中使用 Apache Aries 运行?

我对兼容性很感兴趣。为 Glassfish 编写的包也可以在 Jboss OSGi 中运行吗? WAB 是常见的 OSGi 概念吗?

【问题讨论】:

  • JBoss OSGi 不再存在,从 Wildfly 开始,JBoss 不再支持 OSGi 应用程序。
  • 这是否意味着 Java EE 人员不想在他们的后院安装 OSGi。他们是否建议如果你想要 OSGi,你应该在 EE 服务器上运行 OSGi 运行时?如果您这样做,您将根本无法连接到 EE 服务,或者它们是否提供任何解决方案?
  • @AchimNierbeck:JBoss OSGi 仍然存在,RedHat 正式放弃了它,但最近有一些社区发布。无论如何,即使 RedHat 仍在将资源投入到 JBoss OSGi 和 AS/WildFly 集成中,恕我直言,用户体验从来都不是很令人满意。

标签: jakarta-ee glassfish osgi osgi-bundle


【解决方案1】:

OSGi Enterprise specification 定义了 Java EE 和 OSGi 之间一定程度的互操作性。

这种关系有点片面。 Java EE 并未正式承认 OSGi,而 OSGi EE 直接引用了 Java EE 旗下的一些单独规范(例如 JPA、JDBC、JTA、Servlet、JNDI)。

不幸的是,那些扩展给定 Java EE 规范的 OSGi 规范通常不涵盖最新的 EE 版本,或者它们施加了一些额外的限制。

许多重要的 EE 规范根本没有 OSGi 对应规范(如 CDI、JAX-RS、JAX-WS、JMS、Bean Validation、JCA)。

您可以在 Apache Aries、Eclipse Gemini 和 OPS4J 中找到 OSGi Enterprise 规范(子集)的实现。其中一些项目提供了 OSGi EE 规范未涵盖的附加功能。

支持 OSGi 的 Java EE 服务器(如 GlassFish 3/4 和 JBoss AS 7.0/7.1)确实有自己的方式,不一定符合 OSGi Enterprise 规范,而且很可能无法互操作。

【讨论】:

  • 这有点可悲。在我看来,我看到 OSGi 没有得到应有的驱动。阿帕奇白羊座在这里面的地位是什么?
  • 哦,差点忘了。如果您使用 Apache Karaf,它将包含大多数预先安装的企业功能,或者易于为用户安装。因此,OSGi Enterprise 就绪应用程序服务器列表中缺少一个 ;-)
猜你喜欢
  • 1970-01-01
  • 2011-06-23
  • 2010-10-15
  • 1970-01-01
  • 2012-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多