当前位置: 首页 > 知识库问答 >
问题:

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

茹康裕
2023-03-14

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

我还想为这两个配置文件构建一个单独的战争。

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

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

因此,WebApplicationInitializer和web。xml似乎不是一种选择。

共有1个答案

韩宜春
2023-03-14

记录在案:

在application-dev.war中激活应用程序上的Spring配置文件

创建文件

具有以下内容:

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

这将设置Spring。配置文件。对于由application-dev.war运行的应用程序,active属性设置为dev,server。

多亏了这个答案:https://stackoverflow.com/a/26653238/1807667

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

解决方法是添加

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

而且使用

P、 S.2:Context元素中没有docBase属性,请参见这个问题。

 类似资料:
  • 我想部署一个tomcat服务器,以便它同时侦听两个端口(都用于超文本传输协议)。 为了确保您正确理解这个需求,我们只有一个服务器实例,但希望侦听HTTP协议的两个端口。例如,任何人都可以使用端口号7080和8080访问部署在我的服务器中的应用程序 有可能做到吗?如果可能,我们如何实现这一点?

  • 我已经准备好了我的新Liferay网站,并试图在真实环境中进行测试。我刚刚成功地在服务器上安装了Tomcat Liferay捆绑包,并复制了。根据一些论坛和评论的指示,将war文件放入tomcat旁边的部署目录;但在访问URL后,我仍然会看到默认的Liferay页面,我的页面不会被显示。我在这里做错了什么? 提前谢谢!

  • 问题内容: 我已经将tomcat的webapps目录中的sample.war文件复制了。 我可以访问localhost:8080。 默认情况下,战争的部署是自动进行的-我已经在我的webapps文件夹中检查了提取的文件夹“ sample” 但未提取。为什么未提取war文件。请为此提供解决方案。 问题答案: 从目录中删除该战争文件。然后在您的Web浏览器中打开链接。单击“ Tomcat管理器”, 然

  • 我使用的是Tomcat服务器V7.0。我需要在同一台机器上同时运行两个Tomcat服务器。在运行第一个Tomcat服务器并尝试运行第二个Tomcat服务器后,出现了这个错误。 有解决办法吗? 谢谢你。

  • 我正在用Java 11和Maven创建一个测试框架,并且我已经为单独的测试构建了两个不同的运行程序。我只想运行一个配置文件,但它一直运行两个配置文件。以下是我的个人资料:

  • 所以我的问题是,当我用profile只运行applicaiton时,Spring是否合并了这两个profile,并且我可以在应用程序中看到和?