首页 文章

在Tomcat 7中,您需要将context.xml复制到conf / Catalina / locahost才能生效

提问于
浏览
8

刚刚从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安装

2 回答

  • 11

    documentation(我的重点):

    可以显式定义单个Context元素:在应用程序文件内的/META-INF/context.xml中的单个文件中 . (可选)(基于Host的copyXML属性),可以将其复制到$ CATALINA_BASE / conf / [enginename] / [hostname] /,并重命名为应用程序的基本文件名加上“.xml”扩展名 .

    Host的文档在 copyXML 上有这个说法:

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

  • 1

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

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

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

    但是,使用Tomcat 7时,似乎该文件不会被复制到conf,除非 copyXML 设置为 true ,就像Frank上面回答的那样 .

相关问题