Tomcat 上下文管理

2024-02-26

tomcat 6.0 文档位于http://tomcat.apache.org/tomcat-6.0-doc/config/context.html http://tomcat.apache.org/tomcat-6.0-doc/config/context.html says:

仅当应用程序的上下文文件不存在时$CATALINA_BASE/conf/[enginename]/[hostname]/,在单独的文件中/META-INF/context.xml在应用程序文件内。如果 Web 应用程序打包为 WAR 那么/META-INF/context.xml将被复制到$CATALINA_BASE/conf/[enginename]/[hostname]/并重命名以匹配应用程序的上下文路径。一旦此文件存在,如果新的 WAR 具有较新的版本,则该文件不会被替换/META-INF/context.xml放置在主机的appBase中.

但是我注意到,如果你将新的 war 文件放入 webapp 目录中,context.xml in META-INF目录替换context.xml in $CATALINA_BASE/conf/[enginename]/[hostname].

是否有任何配置可以确保context.xml in $CATALINA_BASE/conf/[enginename]/[hostname]/每当部署新的 war 文件时都不会被覆盖。

Edit:我正在使用 autodeploy="true" 从 JoseK 的评论中,我了解到当 tomcat 看到新的 war 文件时,它会取消部署旧应用程序(导致删除上下文文件)并部署新的 war 文件(导致创建新的 war 文件) )。在这种情况下,tomcat 文档中的上述信息不相关。新的问题是不是有什么情况会发生上述事情呢?


我同意该文档具有误导性。通常,这种行为实际上是受欢迎的,因为当您部署应用程序的新版本时,您也希望部署更新的 context.xml 文件。如果您计划在生产服务器上手动编辑 context.xml 文件,我建议完全跳过它并将其内容复制到 conf/server.xml 文件。

解决您的问题的快速补丁/解决方案(我自己不会这样做)是在第一次部署和更新 context.xml 文件后将其标记为只读。这样Tomcat就无法删除/更新它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tomcat 上下文管理 的相关文章

随机推荐