gpt4 book ai didi

tomcat - 部署 .war 重启竞争条件

转载 作者:行者123 更新时间:2023-11-28 23:51:20 25 4
gpt4 key购买 nike

我有一个 nsis 安装脚本,可以将 .war 文件复制到 Tomcat webapps 目录中。如果 Tomcat 已经在运行,它会注意到一个新的 .war 被放入 webapps 目录并开始解压它。然而,解包是在后台进行的,安装程序认为它已经完成,所以它会提示用户重新启动。如果用户选择现在重新启动,那么 Tomcat 很有可能会在 .war 的解压过程中被中断,并使 webapp 处于损坏状态。

我能想到的唯一解决方案是在安装程序开始时停止 Tomcat 服务(net stop tomcat6)以防止 Tomcat 解包 .war。然后在重新启动时,Tomcat 服务将启动并解压缩。这看起来很脏,因为如果用户选择不立即重新启动,它会使 Tomcat 服务停止(如果有其他正在运行的 Web 应用程序,这可能是不可取的)。

无论我用哪种方式切片,Tomcat 似乎都应该认识到 webapp 没有完全解压并自行清理,然后重试。 Tomcat 错误?

最佳答案

你可以 poll the currently deployed list of applications并禁用重启选项,直到您看到您的网络应用可用。

如果您不喜欢通过 Ant/manager 应用程序进行通信,则很有可能会使用类似的 JMX Hook (我知道至少 JBoss 也有类似的 Hook )。即使没有开箱即用的工具,编写您自己的工具也应该相当容易。

关于tomcat - 部署 .war 重启竞争条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8234315/

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