OSGi EE应用程序



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

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

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

我对兼容性感兴趣。为Glassfish编写的捆绑包也会在Jboss-OSGi中运行吗?WAB是通用的OSGi概念吗?

OSGi企业规范定义了Java EE和OSGi之间的一定级别的互操作性。

这种关系有点片面。Java EE不正式承认OSGi,而OSGi EE直接引用Java EE保护伞下的许多单独规范(例如JPA、JDBC、JTA、Servlet、JNDI)。

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

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

您可以在ApacheAries、EclipseGemini和OPS4J中找到OSGiEnterprise规范的实现(子集)。其中一些项目提供了OSGiEE规范未涵盖的附加功能。

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

最新更新