解决tomcat同时部署两个SpringBoot应用时所遇到的问题

1. 提示InstanceAlreadyExistsException

原因很简单:同一个domain里面的MBean要求name唯一。因此我们分别把不同的应用放到不同的doman问题便可以解决.

Spring Boot的spring.jmx资源管理是默认打开的,而两个项目同时使用会冲突,有两种解决办法,在每一个SpringBoot应用的application.properties中添加如下语句:

修改配置文件:application.properties(yml)

办法1:在项目配置中加入:spring.jmx.enabled=false

办法2:

在application中各自配置

spring.jmx.default-domain=project1

spring.jmx.default-domain=project2

以保证domain是两个不一样的

2 .  部署时上下文路径问题

在application.yml中配的 有关server的一切都是针对springboot内置的tomcat在开发时的配置,比如

server:
    port: 8080
    servlet:
      context-path: /client

而当项目部署到外部tomcat后所有server的配置以外部tomcat自身的配置为准. 尤其要说明的是context-path仅仅只适用于开发时 而当部署后以应用名为contextPath 原来的配置不再有用. 我在此处被坑了

 

 

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot项目部署在Linux上时,你可以选择使用内嵌的Tomcat作为应用服务器。以下是一个示例代码,展示如何在Spring Boot项目中配置多个Tomcat服务器: 首先,在`pom.xml`文件中添加以下依赖,以引入Spring Boot和Tomcat: ```xml <dependencies> <!-- Spring Boot 相关依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Tomcat 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency> </dependencies> ``` 然后,创建两个配置类来配置两个不同的Tomcat服务器。假设你有一个名为`Server1Config`的配置类和一个名为`Server2Config`的配置类。这两个配置类分别配置了两个不同的Tomcat服务器。 ```java @Configuration public class Server1Config { @Bean public TomcatServletWebServerFactory server1Factory() { TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); factory.setPort(8081); // 设置端口号 // 其他配置... return factory; } // 其他配置... } ``` ```java @Configuration public class Server2Config { @Bean public TomcatServletWebServerFactory server2Factory() { TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); factory.setPort(8082); // 设置端口号 // 其他配置... return factory; } // 其他配置... } ``` 在上述示例中,我们使用`@Configuration`注解来标记这两个配置类,并分别创建了`server1Factory`和`server2Factory`方法,用于配置不同的Tomcat服务器。你可以根据实际需求,进一步配置这两个Tomcat服务器的属性。 最后,在Spring Boot应用的入口类上添加`@Import`注解,将这两个配置类引入到应用中: ```java @SpringBootApplication @Import({Server1Config.class, Server2Config.class}) public class YourApplication { // 应用的其他代码... public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } } ``` 通过上述配置,你的Spring Boot应用将会启动两个Tomcat服务器,分别监听8081和8082端口。 希望这个例子能帮助到你。如果还有其他问题,请随时提问。谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值