我是这方面的新手,并阅读了有关 WAB 的信息,但希望清除基本区别 -我的意思是使用嵌入在雄猫中的 osgi 并制作 WAR 与制作 WAB ?
什么时候应该考虑每个选项?
1) OSGI嵌入雄猫
2) 雄猫在 OSGI
3) 使用 WAB
嵌入容器中的OSGi(不仅是Tomcat!)可能是唯一的选择,当你被迫使用传统的JavaEE WAR部署模型时,即IT部门操作容器,你只能将WAR文件降级到它。这在Web应用程序中引导了整个OSGi框架,并允许在Web应用程序中进行模块化开发。然后,Web 应用程序被组合为一组 OSGi 捆绑包。它还可用于将现有的遗留 Web 应用程序迁移/传输到 OSGi 模块中。但是,这将具有挑战性。
我想将第二种方法(OSGi中的Tomcat)称为纯OSGi方法。Tomcat或任何其他Servlet容器(例如,Jetty)可以部署为OSGi框架中的一个捆绑包(或一组捆绑包)。OSGi框架是容器。您不再拥有 Web 应用程序的完全分离。罐子相交。某些捆绑包/模块可能实现 Web 功能,而其他捆绑包/模块可能无法实现。核心功能(核心捆绑包)可以被其他 Web 捆绑包重用。
第三个选项是OSGi中新规范工作的结果。基本上,它是一个带有OSGi捆绑包清单的Web应用程序。因此,整个Web应用程序可以作为单个OSGi捆绑包部署在任何支持WAB的框架上。从技术上讲,捆绑包可以作为 Web 应用程序部署到 Servlet 容器中。但它可以访问 BundleContext。这允许 Web 应用程序与在同一框架中运行的其他捆绑包或 Web 应用程序进行互操作。