您好,匿名用户
随意问技术百科期待您的加入

tomcat设置unpackWARs=true, war包不更新

+2 投票

就是自动部署的问题,tomcat 6.x 7.x 默认情况下设置unpackWARs=true, autoDeploy=true,
拷贝war到webapp下面,tomcat自动解压并部署,但是如果在停掉tomcat时,拷贝新的war包过去,再启动,我期待tomcat会发现这个新的war包并解压后覆盖旧的目录,但是实际上他不会根据新的war包再部署,而是直接使用之前解压过的目录,所以没有更新,我跟了下源码,也是这样。
然而tomcat官方文档描述的是:
启动时会先检查应用目录,如果有与之关联的、更新的war包存在时,会重新部署这个war包;

实际情况和文档不一致,有人知道这个问题么?

用户头像 提问 2012年 12月1日 @ Singed 上等兵 (275 威望)
分享到:

1个回答

+1 投票
 
最佳答案

autoDeploy: 如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用。

unpackWARs: 如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行。如果设为false将直接运行为WAR文件。
 
里面有这么一段:
Note: If you re-deploy an updated WAR file while Tomcat is stopped, be sure to delete the associated expanded directory before restarting Tomcat, so that the updated WAR file will be re-expanded when Tomcat restarts.
大概说的是,如果要重新部署更新的WAR包文件,在tomcat启动前要删除相关的解压文件夹(同名),这样更新的WAR包才会重新解压。
tomcat启动时应该会检查war包解压的文件夹是否存在,存在就不会重新解压了。
 
如果真要实现只更新WAR包就能更新项目,可以设置unpackWARsfalse(默认为true),这样tomcat会直接运行war包。
用户头像 回复 2012年 12月9日 @ Caitlyn 上等兵 (452 威望)
选中 2012年 12月9日 @Saber
提一个问题:

相关问题

+1 投票
1 回复 874 阅读
0 投票
1 回复 31 阅读
0 投票
0 回复 20 阅读
用户头像 提问 2013年 9月17日 @ Sona 上等兵 (306 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...