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

本文详细介绍了如何解决SpringBoot应用在使用JMX时出现的InstanceAlreadyExistsException异常,通过配置不同的domain来避免MBean命名冲突。同时,文中还解释了在部署到外部Tomcat时,如何正确设置上下文路径,避免因server配置被忽略导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 原来的配置不再有用. 我在此处被坑了

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值