如何在tomcat服务器上运行具有不同弹簧配置文件的两个WAR文件?

我想在同一个tomcat服务器上并行运行我的spring应用程序两次。 一次使用production配置文件,一次使用dev配置文件。

我还想为这两个配置文件构建一个WAR。

我已经使用@Profile注释成功地在我的应用程序中集成了配置文件。 我已经在tomcat服务器上成功部署了两个WAR文件。

我需要的是在这两个应用程序中激活不同配置文件的意思,其中约束是这两个应用程序使用相同WAR文件的副本,并且这两个应用程序应该并行运行。

因此, WebApplicationInitializerweb.xml似乎不是一个选项。

作为记录:

application-dev.war激活应用application-dev.war上的dev spring配置文件

创建文件/conf/Catalina/localhost/application-dev.xml

具有以下内容:

    

这将spring.profiles.active属性设置为dev,server用于application-dev.war运行的application-dev.war

感谢这个答案: https : //stackoverflow.com/a/26653238/1807667

PS:server.xml使用autoDeploy=true时, 配置文件在tomcat重启时消失 。

解决方法是在/conf/context.xml添加 ,但要注意根据文档 :

此function在应用程序开发期间非常有用,但它需要大量的运行时开销,不建议在已部署的生产应用程序上使用。

而且使用并没有完全解决配置文件在某些​​重启时仍然消失的问题。

PS2: Context元素中没有docBase属性,请参阅此问题 。