pde*_*eva 27 java tomcat war java-ee
目前,如果我在名为say的tomcat上部署war文件myapp.war
,我可以通过http:// localhost/myapp/MyServlet访问其URL .
但是我想要的是在war文件名中部署一个版本号的war,并且仍然具有相同的url.例如,我想部署myapp-1.1.0.war
并仍然将URL设置为http:// localhost/myapp/MyServlet
当然我需要不断更新战争,版本号会不断变化,所以我不能在任何地方硬编码war文件名.web.xml
我可以使用任何设置来保持应用程序的相同网址,无论战争文件名是什么?
mat*_*t b 14
解决方案是停止使用Tomcat的自动部署功能,该功能采用将"上下文名称"(/myapp
URL 的一部分)设置为".war"之前的WAR文件名部分的快捷方式.
相反,请自行将WAR内容提取到文件系统,并设置一个XML文件,在TOMCAT_HOME/conf/[enginename]/[hostname]/[contextname].xml
该文件中指向所需的上下文路径(例如/myapp
)到磁盘上应用程序的位置(例如/opt/webapps/myapp-1.1.0/
).
在Tomcat的参考文档提供的Tomcat如何自动部署应用的一个很好的解释,以及如何为上下文路径的应用程序文件位置映射配置自定义逻辑(也有其他方法少数设置这不是一个我建议其他以上).
您可以使用YOUR_WAR/META-INF/context.xml.这是一个示例:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/MyServlet"/>
Run Code Online (Sandbox Code Playgroud)