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

我们可以在tomcat中部署两个同名的war文件吗?,tomcat,web-applications,web.xml,Tomcat,Web Applications,Web.xml,是否有任何可能的方法可以在tomcat中部署两个同名的war文件(相同的项目) 我有一个应用程序,它的URL是app/customer/123,它会返回客户详细信息,现在我想给出的版本是app/v1/customer/123应该给我客户详细信息。这通常是版本维护。 还有其他的版本维护方法,将在下面的文章中介绍 但我还是要写很多代码。我一直在寻找我可以立即提供解决方案的东西(以后我可以遵循最佳实践并进行更改) 我在想,我是否可以通过更改/v1/*来部署两个同名的war文件,这样客户就可以通过在U

是否有任何可能的方法可以在tomcat中部署两个同名的war文件(相同的项目)

我有一个应用程序,它的URL是
app/customer/123
,它会返回客户详细信息,现在我想给出的版本是
app/v1/customer/123
应该给我客户详细信息。这通常是版本维护。 还有其他的版本维护方法,将在下面的文章中介绍

但我还是要写很多代码。我一直在寻找我可以立即提供解决方案的东西(以后我可以遵循最佳实践并进行更改) 我在想,我是否可以通过更改
/v1/*
来部署两个同名的war文件,这样客户就可以通过在URL中添加版本来访问这两个api(这将阻止更改整个URL)

我也试过了,但没用

有什么方法可以实现这一点吗?

1)您可以在不同的上下文路径上部署不同版本的应用程序,如下所示:

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


可通过

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


可通过

2) 您可以在不同的上下文路径上多次部署单个war文件,如下所示:

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


可通过

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


可通过


有关详细信息,请参见。

是否需要在文件名app#v1.xml中附加#?如链接文档中所述,文件名必须与上下文路径匹配,而上下文路径中的“/”在配置文件名中由“#”表示。它总是采用最新版本。我不确定“它总是采用最新版本”是什么意思。您能否编辑您的问题并指出Tomcat Manager应用程序列表正在显示什么以及您希望它显示什么@瓦伦
<Context docBase="c:\path\to\v1\app.war" path="/app/v1"/>
<Context docBase="c:\path\to\v2\app.war" path="/app/v2"/>
<Context docBase="c:\path\to\app.war" path="/app/v1"/>
<Context docBase="c:\path\to\app.war" path="/app/v2"/>