【发布时间】:2020-07-29 02:58:44
【问题描述】:
我的问题是——假设我有一个名为 my-app-123.war 的战争文件。我想将它部署在 Tomcat 服务器(9.0.x)上,让它自动解包。
然后http://localhost:8080/my-app-123 可以访问该应用程序
有没有办法在不重命名war文件的情况下使应用程序可以从http://localhost:8080/my-app访问?
我会先说我意识到最简单的解决方案就是命名 war 文件。我很好奇是否有办法在 Tomcat 配置中做到这一点。
我已经这样做了(在我的 server.xml 文件的主机部分中):
<Context path="/my-app" docBase="my-app-123"></Context>
但我在路径变量描述中在线阅读(https://tomcat.apache.org/tomcat-7.0-doc/config/context.html):
即使在 server.xml 中静态定义 Context 时,也不得设置此属性,除非 docBase 不在 Host 的 appBase 下,或者 deployOnStartup 和 autoDeploy 都为 false。如果不遵守这个规则,很可能导致双重部署。
我现在可以通过http://localhost:8080/my-app 和http://localhost:8080/my-app-123 访问该应用程序,这不是一个真正的解决方案。
【问题讨论】: