1

我的 context.xml(在 META_INF 中)文件夹如下所示:

<?xml version="1.0" encoding="UTF-8"?>


<Context path="MY_CONTEXT_NAME" docBase="${catalina.home}/webapps/MY_APP_NAME"
        debug="0" privileged="true">

</Context>

问题是,当我通过 tomcat 管理器部署我的应用程序战争时,context.xml 被复制到 CATALINA_HOME> conf>Catalina>localhost 文件夹。但是,它仍然以某种方式从默认上下文部署,即 app_war_name。

早些时候,它甚至没有被复制到 localhost 文件夹,我删除了默认的 context.xml 表单 tomcat 6.0>conf 文件夹。在那之后,文件至少被复制了。但是,部署不是从显式 context.xml 进行的。

我的 server.xml 主机条目如下所示:

  <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="false"
            xmlValidation="false" xmlNamespaceAware="false" >
  </Host> 
4

2 回答 2

0

阅读 Context 元素的 path 元素的文档。它说得很清楚

只有在 server.xml 中静态定义 Context 时才必须使用此属性。在所有其他情况下,将从用于 .xml 上下文文件或 docBase 的文件名推断路径。

即使在 server.xml 中静态定义 Context 时,也不得设置此属性,除非 docBase 不在 Host 的 appBase 下,或者 deployOnStartup 和 autoDeploy 都为 false。如果不遵守此规则,很可能导致双重部署。

然后阅读 docBase 元素的文档。

除非在 server.xml 中定义了 Context 元素或 docBase 不在 Host 的 appBase 下,否则不得设置此字段的值。

于 2013-10-08T15:54:00.180 回答
0

如果您使用新上下文或更改的上下文再次部署,您需要先取消部署/或从 conf/.../localhost/yourapp.xml 中删除 context.xml

于 2013-12-24T21:46:18.010 回答