我已经阅读了一些相关问题,但我没有找到适合我情况的解决方案 .

我在war文件中有一个包含版本号的webapp . 例如,sourceWarName.war . 我不能使用远程部署,war文件将通过tomcat管理器web界面手动部署 . 我希望通过静态路径访问webapp(与版本分离),例如,http://someserver:8080/targetPathtomcat docsstack overflow question中所指定的,可以在我的应用程序的META-INF文件夹中创建一个context.xml,如下所示:

<Context path="targetPath" debug="0" reloadable="true">
...
</Context>

然后该文件应该被复制到/tomcat7/conf/Cataline/localhost/sourceWarName-1.0.0.xml . 但是,这不起作用 . 没有复制xml文件 . 我在server.xml中配置了host-entry,以确保我们不会遇到像这样的双重部署:

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="false" deployOnStartUp="false" copyXml="true">

但是,仍然可以在/sourceWarName-1.0.0下访问该应用程序 . 我错过了什么?

我尝试了this question的答案,但这对我没有用 . 只有差异似乎是docBase . 关于docBase,Tomcat doc说:

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

我在server.xml中没有上下文元素,appBase是相同的 . 运行Apache Tomcat / 7.0.52(Ubuntu) .