gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 02:39:47 26 4
gpt4 key购买 nike

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

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

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

我需要的是在这两个应用程序中的每一个上激活不同配置文件的方法,限制条件是这两个应用程序使用同一 WAR 文件的副本,并且这两个应用程序应该并行运行。

所以 WebApplicationInitializerweb.xml 似乎不是一个选项。

最佳答案

备案:

激活dev spring profile在application-dev.war中的应用

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

内容如下:

<Context>
<Environment name="spring.profiles.active" value="dev,server" type="java.lang.String" override="false" />
</Context>

这设置了 spring.profiles.active属性(property)dev,server对于 application-dev.war 运行的应用程序.

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

附注:autoDeploy=trueserver.xml , configuration files disappear在 tomcat 重启时。

解决方案是添加<Context reloadable="true"><CATALINA_BASE>/conf/context.xml但要注意根据documentation :

This feature is very useful during application development, but it requires significant runtime overhead and is not recommended for use on deployed production applications.

此外还使用 <Context reloadable="true">没有完全解决配置文件在某些​​重启后仍然消失的问题。

P.S.2:没有docBase Context 中的属性元素,参见 this question .

关于java - 如何在 tomcat 服务器上运行两个具有不同 spring 配置文件的 WAR 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36353040/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com