9

刚刚从 Tomcat 6 迁移到 Tomcat 7,并注意到当您部署一个名为 widget 的 webapp 时,META-INF/context.xml 不再被复制到 conf/Catalina/localhost/widget.xml。

我不清楚是否需要,如果将 context.xml 中的设置留在 META-INF 中,是否会使用它们,或者它们仅在移动到 conf/Catalina/localhost/widget.xml 时才有效

我使用香草 tomcat 7 安装

4

2 回答 2

12

请参阅文档(我的重点):

可以明确定义各个上下文元素:

  • 在应用程序文件内部的单个文件中/META-INF/context.xml。可选地(基于主机的copyXML属性)这可以被复制并重$CATALINA_BASE/conf/[enginename]/[hostname]/命名为应用程序的基本文件名加上“.xml”扩展名。

Host的文档有这样的说法copyXML

如果您希望在部署应用程序时将嵌入在应用程序(位于/META-INF/context.xml)中的上下文 XML 描述符复制到 xmlBase,则设置为 true。在随后的启动中,复制的上下文 XML 描述符将优先于嵌入在应用程序中的任何上下文 XML 描述符使用,即使嵌入在应用程序中的描述符是更新的。该标志的值默认为 false。请注意,如果 deployXML 为 false,则此属性将无效。

于 2012-09-27T20:36:04.080 回答
1

据我了解,除非元素 deployXML 设置为 ,否则使用 META-INF 中的 context.xml false。请注意Tomcat 7 文档true,除非启用了安全管理器,否则默认设置为!

但是,从文档中,我的印象是copyXML在 context.xml 本身中设置属性(不接触 server.xml)会导致文件被复制到 conf:

<Context antiJARLocking="true" path="/widget" copyXML="true" />

但是,使用 Tomcat 7,文件似乎不会被复制到 conf,除非按照 Frank 上面的回答将copyXML其设置为on。true

于 2014-03-25T22:35:54.017 回答