【问题标题】:Hot plug for web applications modulesWeb 应用程序模块的热插拔
【发布时间】:2014-04-17 10:11:13
【问题描述】:

我有一个在 servlet 容器 (Tomcat) 中运行的 Web 应用程序。我的计划是使用热插拔来向正在运行的 Web 应用程序添加和删除其他模块。 这些附加模块只包含一些业务逻辑,但不包含任何与 Web 相关的东西,如 servlet、JSP 页面或 HTML 文件。

最好的方法是什么?

我考虑过从 Tomcat 切换到 Glassfish 以使用 OSGi。 我还考虑过将 Apache Felix 与 Tomcat 一起使用。

有哪些选择?

【问题讨论】:

    标签: java jakarta-ee glassfish osgi hotdeploy


    【解决方案1】:

    如果您想创建一个无需停机即可快速更新的模块化应用程序,OSGi 绝对是正确的技术。

    你有几个选择:

    1. 您可以从像 Apache Felix 这样的 OSGi 容器开始,然后为您的应用程序和 Web 服务器(其中大部分基于 Jetty)部署包到该容器中。这样,所有东西都是一个捆绑包,可以根据需要进行更新。如果您是从头开始,并且对必须使用的现有 servlet 容器没有任何限制,那么这就是您要走的路。

    2. 如果您必须继续使用现有的 servlet 容器,您可以部署一个嵌入 OSGi 容器的 WAR,并且 OSGi 容器将加载构成您的应用程序的所有包。在这种情况下,您可以部署一个特殊的“桥”捆绑包,它将向“主机”servlet 容器注册 Servlet 和过滤器。

    从 Glassfish 开始有点像第一种选择,因为 Glassfish 本身是基于 Felix 构建的。你只是在你的应用程序中预装了很多“额外的”包。如果您无论如何使用其中的 80%,那可能是值得的。如果您在应用程序中几乎不使用 Glassfish (JavaEE) 的任何功能,您最好从 Felix 开始并在那里选择组件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 2015-12-02
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多