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

时间:2019-01-21 12:59:46

标签: 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 个答案:

答案 0 :(得分:0)

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