如何指定"上下文路径"在Tom war 8里面的java war-file中的META-INF / context.xml?

时间:2015-05-13 19:05:21

标签: java tomcat war tomcat8

如何使用Tomcat 8上war文件中的context.xml将 mywebapp-1.0.0.war 部署到带有上下文路径 / mywebapp 的$ TOMCAT_HOME / webapps目录?

我从版本5开始很长一段时间后回到Tomcat工作。我曾经在war文件中创建META-INF / context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/mywebapp">
  ...
</Context>

Maven使用以下名称创建一个war文件:mywebapp-1.0.0.war

但是当我将war文件部署到$ TOMCAT_HOME / webapps目录时,上下文路径将是http://localhost:8080/mywebapp-1.0.0而不是http://localhost:8080/mywebapp/

此外,我看到$ TOMCAT_HOME / conf / Catalina / localhost为空,而不是从部署的war文件中复制xml文件。

我还在$ TOMCAT_HOME / conf / server.xml中添加了deployXML =&#34; true&#34;

 <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true" 
        deployXML="true">

3 个答案:

答案 0 :(得分:8)

无法在 webapp 目录中放置战争,并同时在META-INF / context.xml文件中设置路径属性。 Tomcat 8 documentation清楚地说明了这个属性:

  

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

答案 1 :(得分:1)

您是否只需将war文件重命名为mywebapp(通过Maven或其他方式),以便Tomcat将其部署在/ mywebapp下?

答案 2 :(得分:-1)

感谢您的研究j2gl! 我发现如何使用版本和部署的短路径来实现两个.war文件的好方法是使用Tomcat管理器API。例如通过Tomcat7-maven-plugin。