Tomcat 6 和在部署时更新 context.xml

标签 tomcat tomcat6

我正在使用:

  • 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/

相关文章:

tomcat6 - 未正确定义CATALINA_HOME环境变量

java - Apache Commons 文件上传 - 流意外结束

debugging - Java EE 调试和监控工具的最新技术水平

java - 如何在 koding.com 上运行 Tomcat 服务器(使用 Liferay 包)

sql-server - 尝试访问 Tomcat 服务器上的 JNDI 源

tomcat - 有没有办法手动创建 tomcat session ?

java - 你如何以编程方式 'relative import' 一个 jar 文件目录?

gwt - 拦截客户端证书并将其转发到 web 服务

eclipse - 从 Eclipse 运行时无法访问 Tomcat 7 Manager 应用程序

jakarta-ee - 当我从 eclipse 重新启动 tomcat 时,server.xml 更改被清除