tomcat - 我们可以在tomcat中部署两个同名的war文件吗?

标签 tomcat web-applications web.xml

有什么方法可以在tomcat中部署两个同名的war文件(同一个项目)。

我有一个 URL 为 app/customer/123 的应用程序这会返回客户详细信息,现在我想提供类似 app/v1/customer/123 的版本应该给我客户的详细信息。这通常是版本维护。 还有其他版本维护方法,在下面的帖子中介绍 Best way to maintain api version

但是我还是得写很多代码。我一直在寻找可以提供即时解决方案的东西(稍后我可以遵循最佳实践并进行更改) 我在想是否可以通过更改 <url-pattern>/v1/*<url-pattern> 来部署两个同名的 war 文件因此客户只需在 URL 中添加版本即可访问这两个 api(这将防止更改整个 URL)

我也试过了,但是没用 How to deploy external webapp in tomcat?

有什么办法可以实现吗?

最佳答案

1) 您可以像这样在不同的上下文路径上部署不同版本的应用:

apache-tomcat/conf/Catalina/localhost/app#v1.xml:

<Context docBase="c:\path\to\v1\app.war" path="/app/v1"/>

可通过 http://localhost:8080/app/v1 访问

apache-tomcat/conf/Catalina/localhost/app#v2.xml:

<Context docBase="c:\path\to\v2\app.war" path="/app/v2"/>

可通过 http://localhost:8080/app/v2 访问

2) 您可以像这样在不同的上下文路径上多次部署单个 war 文件:

apache-tomcat/conf/Catalina/localhost/app#v1.xml:

<Context docBase="c:\path\to\app.war" path="/app/v1"/>

可通过 http://localhost:8080/app/v1 访问

apache-tomcat/conf/Catalina/localhost/app#v2.xml:

<Context docBase="c:\path\to\app.war" path="/app/v2"/>

可通过 http://localhost:8080/app/v2 访问

参见 Apache Tomcat Context Configuration Docs了解详情。

关于tomcat - 我们可以在tomcat中部署两个同名的war文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54290569/

相关文章:

java - "[engine] standardhost[localhost]: MAPPING configuration error for request URI"和 "No context configured to process this request"

node.js - "Everything is middleware"

java - web.xml 中的错误页面给出 404

java - Idea 中的 Tomcat。 war 爆炸 : Server is not connected. 部署不可用

java - 在 tomcat 中部署 Spring Boot war 时,application.yml 文件应该放在哪里?

php - Web 应用程序 HTML 参数传递

java - Tomcat中webapp映射静态资源到jar

java - 如何在 java servlet 中链接外部 css?

java - 当我的 web 项目通过 maven 部署时无法在 JBoss 7 上运行

jsp - Tomcat 不监听网络驱动器