如果我有一个名为my-web-app.war
的WAR并将其部署到Tomcat的webapps/
目录,假设它正确启动,我可以通过将浏览器指向:
http://localhost/my-web-app
同样,如果我有一个名为my-server-app.ear
的EAR并将其部署到GlassFish的domain/autodeploy/
目录,然后还假设它正确启动,我可以通过将浏览器指向以下来访问它:
http://localhost/my-server-app
但是,如果我想保持我的WAR / EAR具有相同名称,但将其部署到与这些默认值不同的URL,该怎么办?例如:
my-web-app.war
部署为http://localhost/webapp
my-server-app.war
部署为http://localhost/srvapp
my-server-app.war
部署为http://localhost
在像Apache这样的其他服务器中,我知道可以设置“虚拟目录”等,以便http://example.com/some/long/path/to/file.html
在浏览器中显示为http://example.com/file
,并且想知道Tomcat / GlassFish是否允许这样做(如果是的话,如何)?
我问,因为我打算将所有WAR / EAR的版本包含在他们的名字中,所以我可以在文件系统上查看它们,并立即知道它们是什么版本,例如:
my-web-app-3.17.2.war
等让我的用户转到http://localhost/my-web-app-3.17.2
似乎小疯了。
答案 0 :(得分:3)
使用Tomcat有两种方法可以做到这一点,但最好的方法是利用并行部署版本标签。
您可以将WAR命名为:
webapp##my-web-app-3.17.2.war
并将部署到
/webapp
##之后的任何内容都被视为并行部署的版本标签。有关详细信息,请参阅docs。
答案 1 :(得分:1)
如果您有EAR,可以在文件application.xml中设置上下文根
对于每场战争,你可以设置一个上下文根