我按照以下步骤进行了
我发现当我重新启动Tomcat时,先前展开的文件夹中的现有文件未更新。 war文件的更新是否已更新相关的jsp,类文件?
我查看了文档,发现了http://tomcat.apache.org/tomcat-5.5-doc/config/host.html。 “自动应用程序部署”下的以下引用
除了自动 启动时发生的部署 时间,你也可以要求新的 WAR配置文件,WAR 文件或子目录 放入appBase(或者 $ CATALINA_HOME / conf目录/ [引擎名称] / [HOST_NAME] 在XML配置的情况下 文件)目录,而Tomcat是 运行将自动进行 根据规则部署 如上所述。汽车部署者 还将跟踪Web应用程序 以下更改:
- WEB-INF / web.xml的更新 文件将触发重新加载Web 应用
- WAR的更新 已经扩大的将触发 取消部署(删除了 扩展webapp),然后是a 部署
- 对XML的更新 配置文件会触发一个 取消部署(不删除任何部分 扩展目录),然后是 部署相关的网络 应用
由于上述第2点,文件是否已自动更新?
在server.xml中将Autodeploy设置为true
答案 0 :(得分:30)
从历史上看,当你刚刚放入一个新的jar时,tomcat从未更新过爆炸目录,至少对我而言。我一直认为这是一个错误,但从来没有调查它,因为有一个简单的解决方案。这两个都应该工作正常:
答案 1 :(得分:7)
添加autoDeploy = true。适合我
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
答案 2 :(得分:6)
我通常将server.xml中的autodeploy设置为false。这允许我放弃新的war并重新启动tomcat而不必处理相应的目录。
答案 3 :(得分:2)
是的,应该更新展开的目录,但是你不需要停止Tomcat来实现它 - 它将与Tomcat一起运行。您是否可以在更新之间停止Tomcat而再次尝试?
此外,我使用内置的Manager应用程序,它允许我在域中的任何位置更新war文件而不是root(或者apache或tomcat运行的任何东西)。这非常方便,可以构建到Ant脚本中。
答案 4 :(得分:1)
在我的情况下,我命名工件
ROOT.WAR
但应该是
ROOT.war
干杯!
答案 5 :(得分:0)
当我使用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 stop / start用于避免任何内存泄漏,这些内存泄漏会导致应用程序在多次重新部署后变慢。