gpt4 book ai didi

java - 如何覆盖已部署应用程序的 Java 容器 URL 映射

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:17 25 4
gpt4 key购买 nike

如果我有一个名为 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 似乎有点疯狂。

最佳答案

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

您可以将 WAR 命名为:

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

它会被部署到

/webapp

## 之后的任何内容都被视为并行部署的版本标签。查看docs了解更多详情。

关于java - 如何覆盖已部署应用程序的 Java 容器 URL 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10667112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com