7

我是这方面的新手并阅读了有关 WAB 的信息,但希望清除基本区别 - 我的意思是使用嵌入在 tomcat 中的 osgi 并制作 WAR 与制作 WAB?

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

1) 嵌入在tomcat中的OSGI

2)OSGI中的tomcat

3) 使用 WAB

4

1 回答 1

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 应用程序与在同一框架中运行的其他包或 Web 应用程序进行互操作。

于 2012-07-05T13:47:11.447 回答