[英]How is GlassFish an OSGi container?
在研究OSGi和OSGi容器时,我偶然发现了这样一个问题,提到将GlassFish作为OSGi容器,我不得不感到困惑。
这怎么可能?!?!
我的理解是OGS(一种Java兼容的应用服务器)具有2个容器:
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联盟指定模块(捆绑包)的格式,以便模块可以指定其依赖性。 联盟还指定了用于安装和管理模块的API。 最后,它指定了大量在开发应用程序时有用的接口。
Websphere,Glassfish,JBoss和Jonas均支持部署OSGi捆绑软件。
Glassfish在内部使用OSGi提供您提到的功能。 除此之外,您可以在上面部署自己的OSGi捆绑软件。 请参见https://wikis.oracle.com/display/GlassFish/OSGi尽管OSGi与Java EE之间没有真正的联系。 您还不能在Glassfish的OSGi捆绑软件中使用JavaEE。 对于这种情况,有一些像OSGi上的Weld这样的倡议: http ://www.slideshare.net/TrevorReznik/weldosgi-injecting-easiness-in-osgi尽管它们还没有真正做好生产准备。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.