旧文件是:
$ curl http://localhost:8084
First file
我的意思是 - war-file 只包含一个带文字&#34的index.jsp页面;第一页":
$ jar tf ../app-application/APP.war
META-INF/
META-INF/MANIFEST.MF
index.jsp
Tomcat' server.xml
有下一个组件配置:
<Host
name="localhost"
appBase="/home/user/APP/app-application/"
unpackWARs="false"
autoDeploy="true"
deployOnStartup="false">
<Context
path=""
docBase="APP.war"
reloadable="true"
/>
然后 - 我复制了新的 war-file :
$ cat ../tmp/1/index.jsp
Second file
$ cd ../tmp/1/ && jar cf APP.war index.jsp
$ cp APP.war ../../app-application/
cp: overwrite `../../app-application/APP.war'? y
在日志中看到:
INFO: Undeploying context [/APP]
Jun 3, 2014 1:16:40 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /home/user/APP/app-application/APP.war
Buit - 当我尝试用浏览器打开它时 - 我又得到了旧文件:
$ curl http://localhost:8084/
First file
只有在完全重启Tomcat之后 - 我才会看到新文件;
$ curl http://localhost:8084
Second file
为什么呢?我错过了什么吗? Tomcat将它保存在一些缓存中吗?
答案 0 :(得分:1)
如评论中所述,当您启用<Context>
时,您不需要定义autoDeploy
。
当autoDeploy
为true时,Tomcat
将在appBase
目录中查看新文件并将其部署在名为WAR
的上下文路径上 - EG {{ 1}}将部署在app.war
上下文路径上。
您可以定义/app
但我认为如果您对<Context>
autoDeploy
这样做,它会覆盖部分Host
设置,并可能导致打破Host
。
希望这有帮助,
威尔