我对Java和OSGi的世界还比较陌生,不太理解OSGi web应用程序的生态系统。
更具体地说,我目前试图理解整个生态系统中各个部分之间的关系:
- OSGi框架(例如Apache Felix、Equinox、Knoplerfish)
- OSGi运行时(例如Spring DM Server、Pax Runner、Apache Karaf)
- Web扩展器(例如Pax Web Extender、Spring Web Extender)
- Web容器(例如Apache Tomcat、Jetty)
为了让你更好地理解它们之间的关系,请看一下这张图片:
据我所知,OSGi框架是OSGi规范的一个实现。运行时是在OSGi规范之上添加了额外功能(例如日志记录)的分发版。由于OSGi和Web容器(如Tomcat)之间的类路径机制存在差异,因此需要某种翻译工具。这部分由"Web Extender"来处理。
请帮我澄清这整个事情。我的理解是否正确?