Tomcat文档(http://tomcat.apache.org/tomcat-6.0-doc/config/context.html)
仅当$ CATALINA_BASE / conf / [enginename] / [hostname] /中的应用程序不存在上下文文件时,才在应用程序文件内的/META-INF/context.xml中的单个文件中 . 如果Web应用程序打包为WAR,则/META-INF/context.xml将复制到$ CATALINA_BASE / conf / [enginename] / [hostname] /并重命名以匹配应用程序的上下文路径 . 一旦此文件存在,如果在主机的appBase中放置了带有较新的/META-INF/context.xml的新WAR,则不会替换它 .
粗体文字很清楚 . 但我通知不是真的 . (我需要这个行为)
以下是步骤:
aaa.war,META-INF中包含context.xml
复制到webapps . tomcat部署 . 文件 conf\Catalina\localhost\aaa.xml 好的
通过更改META-INF / context.xml来更改aaa.war
复制到webapps
文件 conf\Catalina\localhost\aaa.xml 已更改!!!
怎么了?它是一个错误还是一个隐藏的功能?
背景 - 我想解决的问题:
配置独立构建和安装 . 我厂运送战争档案 . 客户端使用自己的设置来配置他的Tomcat . 当我发布新版本时,我只是在没有配置的情况下交付战争,在部署时它将使用客户端特定的配置 .
通过文档,最好的地方是context.xml但是如果每次都覆盖它根本就没用 . (如果必须创建新的可交付成果,为什么我会使用JNDI和这样的东西?在构建时改变一些东西并不是一个很大的配置优势 . )
环境:windows,tomcat 6.0.33