gpt4 book ai didi

tomcat - 需要在 Tomcat 中运行同一个 Web 应用程序的多个实例

转载 作者:行者123 更新时间:2023-11-28 22:04:02 32 4
gpt4 key购买 nike

我使用的是 Tomcat 8.5,其中一个 webapp 部署到默认的 webapps 目录 (/var/lib/tomcat8/webpps/MyWebApp.war)。

现在我想运行同一个 webapp 的第二个实例。我想我可以在上下文目录 (/etc/tomcat8/Catalina/localhost/MyWebApp2.xml) 中创建一个新的 MyWebApp2.xml 文件,并设置 appBase="MyWebApp.war",这样我就可以运行第二个实例无需上传和维护单独的 war 文件。

但是,当我这样做时,我得到了这个 Tomcat 错误:

docBase [/var/lib/tomcat8/webapps/MyWebApp.war] inside the host appBase has been specified, and will be ignored

听起来我可以通过 1) 上传一个不同名称的单独 .war 文件,或 2) 将第一个 .war 文件放在默认的 webapp 文件夹之外来解决这个问题,但我都不喜欢这些解决方案。难道不能从默认 webapps 目录中的单个 .war 文件运行一个应用程序的多个实例吗?

最佳答案

我也在使用 Tomcat 8.5,部署同一应用程序的另一个实例非常容易。

您所要做的就是复制一份war文件。无需弄乱任何配置文件。新实例的路径和版本将从 war 文件的名称派生。

例如,如果原始应用程序的war 文件是myapp.war ,您可以在 webapps 中简单地执行此操作目录:

copy myapp.war foo.war

Tomcat 将检测新的 war 文件并在 /foo 部署一个新实例几秒钟后。

要在更深的路径部署并分配版本,请使用 ###分别。例如,这个:

copy myapp.war foo#bar##9.war

将在路径 /foo/bar 部署应用程序并分配版本 9 .

更新

您应该在您的问题中提及使用 Tomcat Client Deployer,因为我的建议已经满足您的两个原始条件:1) 无需上传另一个 war 文件和 2) 无需将 war 文件放在 webapps 之外目录。

据我所知,TCD 使用 Tomcat Manager 作为后端,而 Tomcat Manager 只将 war 文件上传到 webapps目录,它解释了 TCD 的限制。在我看来,您有以下三种选择:

  1. 用其他东西增强 TCD 以添加更多功能。你提到了一个:ssh。

  2. 使用其他部署解决方案。

  3. 做一个。因为您已经确切地知道自己想要什么,所以您可以简单地编写一些脚本来实现它。

关于tomcat - 需要在 Tomcat 中运行同一个 Web 应用程序的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47215142/

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