首页 文章

Tomcat没有自动部署war文件

提问于
浏览
30

我按照以下步骤操作

  • 关闭Tomcat

  • 部署了一个时间戳为12月1日的war文件

  • 启动Tomcat - 这为已部署的war文件创建了展开的目录 .

  • 停止Tomcat

  • 使用时间戳为12月3日的新文件更新了war文件

  • 重启Tomcat

我发现当我重新启动Tomcat时,先前展开的文件夹中的现有文件未更新 . war文件的更新是否已更新相关的jsp,类文件?

我查看了文档,发现了这个http://tomcat.apache.org/tomcat-5.5-doc/config/host.html . 以下引用"Automatic Application Deployment"

除了在启动时发生的自动部署之外,您还可以请求将新的XML配置文件,WAR文件或子目录放入appBase(或$ CATALINA_HOME / conf / [engine_name] / [host_name]中 . 根据上述规则,将自动部署Tomcat运行时的XML配置文件目录 . 自动部署程序还将跟踪Web应用程序以进行以下更改:对WEB-INF / web.xml文件的更新将触发Web应用程序的重新加载对已扩展的WAR的更新将触发取消部署(删除扩展的webapp),然后是部署对XML配置文件的更新将触发取消部署(不删除任何扩展的目录),然后部署关联的Web应用程序

由于上面的第2点,文件是否已自动更新?

autodeploy在server.xml中设置为true

6 回答

  • 6

    从历史上看,当你刚放入一个新 jar 时,tomcat从未更新过爆炸目录,至少对我而言 . 我一直认为这是一个错误,但从来没有调查它,因为有一个简单的解决方案 . 这两个都应该工作正常:

    • 使用内置管理器应用程序部署war文件 . 如果您可以使用GUI进行 生产环境 管理,那就很好 . Note 如果你多次部署这个工具曾经有问题(同样,我从未深入研究过细节),但Tomcat重启工作正常 .

    • 停止,删除和删除 . 停止Tomcat,删除展开的目录,然后放入新的war文件 .

  • 7

    添加autoDeploy = true . 适合我

    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    
  • 2

    我通常将server.xml中的autodeploy设置为false . 这允许我放弃新的war并重新启动tomcat而不必处理相应的目录 .

  • 30

    是的,应该更新展开的目录,但是您不需要停止Tomcat来实现它 - 它将与Tomcat一起运行 . 你可以再次尝试它而不停止更新之间的Tomcat吗?

    此外,我使用内置的管理器应用程序,它允许我更新域中任何地方的war文件,而不是root(或apache或运行的任何tomcat) . 这非常方便,可以构建到Ant脚本中 .

  • 0

    在我的情况下,我命名神器

    ROOT.WAR
    

    但应该是

    ROOT.war
    

    干杯!

  • 1

    当我使用maven在ubuntu框中的tomcat中生成我的构建时,我有一个名为的脚本

    install_wars.sh

    使用以下内容: mvn clean install service tomcat7 stop find /var/lib/tomcat7/webapps/ -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} \; find . -name *.war -exec cp {} /var/lib/tomcat7/webapps/ \; service tomcat7 start 您可能需要相应地更改路径和maven命令 .

    tomcat停止/启动是为了避免任何内存泄漏,这可能会导致应用程序在多次重新部署后变慢 .

相关问题