启动项目时遇到的报错,在同事的电脑上可以正常运行,记录尝试的几种解决办法
JMX是Java平台中用于管理和监控应用程序、设备和服务的标准API。在Spring Boot应用程序中,默认情况下会启用JMX来提供一些管理和监控的功能,例如通过JConsole或VisualVM监控应用程序的运行状态,查看和修改应用程序的配置等。
- 网上大部分相同报错的原因是因为Tomcat同时部署了两个Springboot应用,或者Tomcat部署了应用两次(❎)
- 在application.properties中添加配置,将
spring.jmx.enabled
配置项设置为false
可以禁用JMX功能,即不再提供JMX相关的管理和监控功能(❎)spring.jmx.enabled=false
- 在application.properties中添加配置,如果有针对不同环境的多个application.properties文件,在每个文件中指定不同的属性值(❎)
spring.jmx.default-domain=xxx
- 在启动类上添加
@EnableMBeanExport
注解,并将exposeProxy
属性设置为false,可以阻止Spring将代理对象暴露给JMX
(❎)@SpringBootApplication @EnableMBeanExport(exposeProxy = false) public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } }
- IDEA版本问题,从2023.1.4换成2021.3重新启动后成功运行(✅)
这个是在Stack Overflow上看到一个相同的例子,尝试后解决问题
Spring Boot - How to configure JMX default-domain - Stack Overflow