WAB和WAR之间的区别

Rnd*_*ndm 7 osgi war wab

我是一个新手,这和阅读有关WABS,但希望清除的基本区别 - 我的意思是使用嵌入到Tomcat OSGi和制作WAR VS制作WAB?

什么时候应该考虑每个选项?

1)嵌入在tomcat中的OSGI

2)OSGI中的tomcat

3)使用WAB

Gun*_*nar 8

当您被迫使用传统的JavaEE WAR部署模型时,嵌入在容器中的OSGi(不仅仅是Tomcat!)可能是唯一的选择,即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支持的框架上.从技术上讲,bundle可以作为Web应用程序部署到Servlet容器.但它可以访问BundleContext.这允许Web应用程序与在同一框架中运行的其他bundle或Web应用程序进行交互操作.

  • 好答案.请注意,工件可以是WAR*和*WAB,因此可以部署到OSGi和传统容器.这有助于迁移. (2认同)