刚刚从Tomcat 6迁移到Tomcat 7并注意到当您部署名为widget的webapp时,META-INF / context.xml不再被复制到conf / Catalina / localhost / widget.xml .
我不清楚它是否需要,如果保留在META-INF中,是否会使用context.xml中的设置,或者如果移动到conf / Catalina / localhost / widget.xml它们是否只有效果
我使用香草tomcat 7安装
见documentation(我的重点):
可以显式定义单个Context元素:在应用程序文件内的/META-INF/context.xml中的单个文件中 . (可选)(基于Host的copyXML属性),可以将其复制到$ CATALINA_BASE / conf / [enginename] / [hostname] /,并重命名为应用程序的基本文件名加上“.xml”扩展名 .
Host的文档在 copyXML 上有这个说法:
copyXML
如果希望在部署应用程序时将应用程序内部嵌入的上下文XML描述符(位于/META-INF/context.xml)复制到xmlBase,则设置为true . 在后续启动时,复制的上下文XML描述符将优先于嵌入在应用程序内的任何上下文XML描述符,即使嵌入在应用程序内的描述符更新 . 标志的值默认为false . 请注意,如果deployXML为false,则此属性不起作用 .
据我了解,除非元素deployXML设置为 false ,否则将使用META-INF中的context.xml . 注意Tomcat 7 docs,除非启用了安全管理器,否则默认为 true !
false
true
但是,从文档来看,我的印象是在context.xml本身中设置 copyXML 属性(不触及server.xml)会导致文件被复制到conf:
<Context antiJARLocking="true" path="/widget" copyXML="true" />
但是,使用Tomcat 7时,似乎该文件不会被复制到conf,除非 copyXML 设置为 true ,就像Frank上面回答的那样 .
2 回答
见documentation(我的重点):
Host的文档在
copyXML
上有这个说法:据我了解,除非元素deployXML设置为
false
,否则将使用META-INF中的context.xml . 注意Tomcat 7 docs,除非启用了安全管理器,否则默认为true
!但是,从文档来看,我的印象是在context.xml本身中设置
copyXML
属性(不触及server.xml)会导致文件被复制到conf:但是,使用Tomcat 7时,似乎该文件不会被复制到conf,除非
copyXML
设置为true
,就像Frank上面回答的那样 .