有什么方法可以在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 访问
关于tomcat - 我们可以在tomcat中部署两个同名的war文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54290569/