gpt4 book ai didi

java - 从多个 Web 应用程序创建单个 Web 应用程序 (WAR)

转载 作者:行者123 更新时间:2023-11-30 10:43:05 24 4
gpt4 key购买 nike

我们已经有一个 spring web 应用程序(maven 项目),比如 webApp1,它在生产环境中托管并且工作正常,但现在由于一些业务需求,我们想开发另一个 web 应用程序,比如 webApp2。

因此,有些客户需要这两种应用程序,或者有些客户需要其中一种。我们需要自由部署哪个模块,可能会出现某些客户不想要 webApp1 的情况,因此部署包必须仅包含 webApp2 或有时两者都包含。

方法一:

让我们创建另一个 maven 项目并单独开发,在创建部署包时使用 Apache Ant 可以完成,这将通过组合 libs、views 创建 WAR 文件, 两个应用程序或一个应用程序的 Controller 。组合 web.xml、root-context.xml、servlet-context.xml 可能是手动任务。

方法二:

在搜索方法 1 后,我开始了解 EAR(类似问题 https://stackoverflow.com/a/2936464/1629242)。

EAR 包(类似问题 https://stackoverflow.com/a/2936464/1629242 )可以是方法,但是对于这个我需要将现有应用程序转换为 EAR 吗?或者现有的工作网络应用程序 webApp1 需要哪些更改? 还有我如何控制需要在 EAR

中添加哪个模块

最佳答案

至于方法 2。这真的取决于你如何托管你的应用程序,什么是容器。如果 Tomcat/Jetty 是一个很常见的选择,那么 EAR 甚至不是一个选项,因为它们不“理解”(无法处理)EAR 文件。

关于方法 1。组合各种 xml 的“手动”部分可能很乏味,而且肯定容易出错。此外,如果您组合 xml,您将不会在 webapp1 和 webapp2 之间获得真正的分离(在类加载器级别)。毕竟完全不同的应用程序将托管在同一个 WAR 中。

所以,恕我直言,您应该采用方法 3:

将 webapp1 和 webapp2 作为不同的部署单元(不同的 WAR)。保留不同的web.xml、spring配置文件等。

将这些 war 部署为同一个容器中的 2 个不同文件。容器将愉快地服务于 2 个不同的 war 。这样,spring bean、servlet、过滤器等就不会在运行时干扰两个应用程序。此外,这种方法可以完全自动化。

关于java - 从多个 Web 应用程序创建单个 Web 应用程序 (WAR),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37894479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com