Jen*_*ens 28 tomcat osgi equinox apache-felix
我是整个Java和OSGi世界的新手,我无法理解OSGi Web应用程序的生态系统.
更确切地说,我目前正试图了解生态系统的所有部分是如何相互关联的:
为了让您直观地了解我对他们的关系的实际理解,请查看此图片:
alt text http://img253.imageshack.us/img253/1631/osgiwebenvironmentschem.png
据我所知,OSGi框架是OSGi规范的一个实现.运行时是一种分发,它在OSGi规范之上添加了额外的功能,例如日志记录.由于OSGi和Web容器(如Tomcat)的类路径机制似乎存在一些差异,因此您需要某种翻译器.这部分由"Web Extender"处理.
请你澄清一下这件事吗?我理解一切正确吗?
Ale*_*ing 25
OSGi是用于交互软件模块的API和包装的标准.这类似于JPA或Java EE等其他API标准.
OSGi运行时是遵循OSGi标准的服务器,它是标准的实现.你提到一些常见的:Knopflerfish,Eqinox.这些让你运行OSGi包.
Web容器通常是指Java EE(servlet)的Web特定部分的实现.servlet标准还定义了一个API和包装,就像OSGi一样,只是不同的.
您需要一台服务器来运行Java EE Web应用程序.您将应用程序打包为Java Web Archive(WAR),并要求应用程序服务器启动它.正如你所提到的,有几个服务器,如Tomcat,Jetty,还有更大的服务器,它们涵盖了Java EE标准的更大部分,比如Glassfish和JBoss.
Web扩展程序尝试将servlet标准与OSGi统一起来.通过向已打包的WAR添加一些特定于OSGi的数据,WAR将自动解析并由OSGi运行时启动.您的WAR servlet将由Web扩展器发布到OSGi http服务.使用Web扩展程序,您可以仅使用OSGi运行时运行标准OSGi应用程序和WAR,而无需像Tomcat这样的Java EE兼容服务器.
归档时间: |
|
查看次数: |
8240 次 |
最近记录: |