3

如果我调用了一个 WARmy-web-app.war并将其部署到 Tomcat 的webapps/目录,假设它正确启动,我可以通过将浏览器指向以下位置来访问它:

http://localhost/my-web-app

同样,如果我调用了一个 EARmy-server-app.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, ETC。

让我的用户去http://localhost/my-web-app-3.17.2似乎有点疯狂。

4

2 回答 2

3

使用 Tomcat 有几种方法可以做到这一点,但最好的方法是利用并行部署版本标签。

您可以将您的 WAR 命名为:

webapp##my-web-app-3.17.2.war

它将被部署到

/webapp

## 之后的任何内容都被视为并行部署的版本标签。有关更多详细信息,请参阅文档

于 2012-05-19T19:24:46.577 回答
1

如果您有 EAR,您可以在文件 application.xml 中设置上下文根

对于每场战争,您可以设置一个上下文根

于 2012-05-20T10:51:35.970 回答