刚从Tomcat 5迁移到Tomcat 7并遇到部署问题。
我通过将widget.war
复制到webapps中来初步部署我的应用程序小部件,这样可行,Tomcat会部署并爆炸战争。
当我想进行更改时会出现问题。
如果我重新部署战争一切正常,但因为我将战争上传到远程服务器,这可能会很慢。因此,如果我只是更改一个类,我只需将新类直接复制到展开的文件夹结构中,然后关闭并重新启动Tomcat,但它没有效果。
我想我已经解决了,因为widget.war被重新部署,所以我的新类被widget.war中的旧版本的类替换。那么我手动删除widget.war所以它不会被覆盖但是在关机/启动时我根本没有widget文件夹。它消失了!
为什么这样,Tomcat 5没有发生这种情况。
答案 0 :(得分:2)
以这种方式部署单个文件修复程序是一种可靠的方法,可以让您无法重建在服务器上运行的内容以及“但仍然难以维护”的情况。 / p>
干净的解决方案是只部署完整的战争文件。
现在你说将它复制到远程服务器的速度很慢?对此有一个简单的解决方案:
在远程服务器(Tomcat webapps目录之外)的某处保留最新war文件的副本,并在其上rsync
新版本:这应该快得多,因为只需要传输更改的数据。然后从该目录进行部署。
答案 1 :(得分:1)
如果在tomcat运行时删除.war文件,它也会删除展开的目录。 您可以先关闭tomcat,删除.war文件,然后重新启动或更好,为什么不直接将.war文件解压缩到webapps文件夹中(但不要将.war文件放在webapps中)。