我正在使用:
- Tomcat 6.0.30
这是我的 Web 应用程序项目中的 context.xml 和 web.xml 结构:
- 元信息
- context.xml
- WEB-INF
- web.xml
当我为我的应用程序生成 WAR 文件时,context.xml 正在按预期打包。当我将 WAR 文件复制到 Tomcat webapps 文件夹并启动 Tomcat 时,WAR 文件被提取并且 context.xml 被复制到 \conf\Catalina\localhost\<webappname>.xml
正如预期的那样。但是,这仅适用于 <webappname>.xml
还不存在。因此,如果不先删除现有的 <webappname>.xml
,我就无法更新 context.xml、打包 WAR 和 redploy。 .我知道这是基于阅读文档的预期功能。
我的问题是,那我该怎么办?我如何更新 context.xml 并自动复制这些更新,就像它们是全新的一样?我不想删除 <webappname>.xml
在每次发布之前。
也许我的做法不对?
最佳答案
如果您先取消部署应用程序,.xml 文件将从 conf/Catalina/localhost 文件夹中删除。然而,只是将新的 war 放置到位并不会触发取消部署(只是部署),并且不会替换旧的 xml 文件。
您可以通过以下任一方式取消部署该应用:
- 删除 webapps 文件夹中的 war 文件 - tomcat 将取消部署应用程序(如果 autoDeploy 在主机配置的 server.xml 中设置为 true)
- 如果您安装了管理器应用程序,您可以在该应用程序上发出删除/删除/取消部署命令,或者在上传新 war 时可能会有“取消部署”选项(我记不清是哪一个了是)
关于Tomcat 6 和在部署时更新 context.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10231791/