IAm*_*aja 3 java osgi glassfish java-ee
在研究OSGi和OSGi容器时,我偶然发现了这个问题,提到GlassFish是一个OSGi容器,我不得不说我很困惑.
这怎么可能?!?!
我的理解是OGS--一个兼容Java的应用服务器 - 有两个容器:
OSGi捆绑包在哪里适合这种范例?!?OGS是否允许您将OSGi包部署到应用程序容器并将其视为EJB或其他内容?如果我对OGS的工作原理有误,请指正!提前致谢!
OSGi是一个模块系统,允许添加/删除/升级不同的包,处理依赖关系,提供有关状态的运行时信息等.
当涉及到GlassFish(其中包含Apache Felix OSGi容器)时,应用程序服务器的不同功能(例如HTTP服务器,JMS服务器等)作为捆绑包实现.OSGi容器有基于控制台和Web的界面,您可以在其中启动,安装,删除服务(请参阅下面的PDF)
就Java EE应用程序而言,它们也可以与OSGI容器进行交互.例如,EJB可以作为OSGi服务导出,EJB也可以使用OSGi服务.
有关详细信息,请参阅http://glassfish.java.net/public/GF-OSGi-Features.pdf
嗯,对OSGi是什么的一个相当完全的误解......
OSGi是一个框架,允许您组织代码,以便您可以从可重用的组件构建它,然后可以通过服务层进行协作(不再是Class.forName或XML!).
OSGi框架可以独立运行,它们在应用程序内运行,可以在WAR文件中运行,并且可以在应用程序服务器内运行.你甚至可以在OSGi内部的OSGi中运行OSGi,因为它不依赖于任何地方的静态.
OSGi Alliance为模块(bundle)指定了一种格式,以便模块可以指定它们的依赖关系.Alliance还指定了用于安装和管理模块的API.最后,它指定了大量在开发应用程序时很有用的接口.
Websphere,Glassfish,JBoss,Jonas都支持部署OSGi包.