【发布时间】:2011-11-22 21:50:36
【问题描述】:
我有一个 nsis 安装脚本,它将一个 .war 文件复制到 Tomcat webapps 目录中。如果 Tomcat 已经在运行,它会注意到一个新的.war 被放入webapps 目录并开始解包。然而,解压是在后台进行的,安装程序认为它已经完成,所以它会提示用户重新启动。如果用户选择现在重新启动,那么 Tomcat 很有可能会在解压 .war 的过程中中途中断,并使 web 应用程序处于损坏状态。
我能想到的唯一解决方案是在安装程序启动时停止 Tomcat 服务 (net stop tomcat6),以防止 Tomcat 解压.war。然后在重新启动时,Tomcat 服务将启动并解压。这看起来很脏,因为如果用户选择不立即重新启动,它会使 Tomcat 服务停止(如果有其他正在运行的 web 应用程序,这可能是不可取的)。
无论我采用哪种方式切片,Tomcat 似乎都应该识别出 web 应用程序没有完全解压并自行清理,然后重试。 Tomcat 错误?
【问题讨论】:
-
安装程序为什么需要重启盒子?
-
@Joe 它是需要重新启动的较大安装脚本的一部分。