我们有一个tomcat部署,我们正在部署一个名为app.war
的战争。在/opt/tomcat/webapps
目录中,您会看到:
/opt/tomcat/webapps/foo.war
/opt/tomcat/webapps/foo
/opt/tomcat/webapps/host-manager
/opt/tomcat/webapps/jmx-console
...
您可以看到Tomcat将foo.war
部署到foo
目录。
我想如果我们在foo.war
目录中放置一个新的webapps
,Tomcat会检查这是否已更改,删除旧的foo
目录,然后取消foo.war
进入foo
。
我们有一个失败的自动部署脚本,部署脚本关闭Tomcat,将foo.war
复制到/opt/tomcat/webapps
并重新启动Tomcat。但是,Tomcat从未将/opt/tomcat/webapps/foo
目录替换为新foo.war
的内容。手动删除/opt/tomcat/webapps/foo
允许Tomcat创建一个包含所有新文件的新foo
目录。
部署脚本假设要删除/opt/tomcatwebapps/foo
,但由于脚本中没有发生错误。我们现在修复了这个bug。但是,该脚本之前已在部署中使用过,我们从未遇到过此问题,因此我假设Tomcat能够检测到更改并部署新的foo.war
。
因此,Tomcat会检测war文件何时更改。如果是这样,它是如何做到的?部署脚本触及war文件以更新时间戳以帮助进行此检测,因此它不能成为时间戳问题。
答案 0 :(得分:2)
如果将foo.war复制到webapps中,tomcat将重新部署您的应用程序。检查catalina.out以获取日志。
在部署之前不要关闭Tomcat。在eclipse或netbeans中修改源代码,创建war文件然后部署,如果你使用ant或maven,你可以使用它们进行部署。