Spring Boot初始化RMI连接错误:MBean服务器9001端口连接拒绝
错误根因
spring-boot-maven-plugin的start目标默认依赖JMX端口9001与启动的应用通信,检测启动状态。你遇到的报错是因为插件无法通过9001端口和应用建立JMX连接,即使应用本身启动成功。
修复方案
- 方案1:指定自定义JMX端口避免端口冲突
如果9001端口被本机其他进程占用,可以在插件配置中指定其他未被占用的端口,修改pom.xml中spring-boot-maven-plugin的配置:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <jmxPort>9002</jmxPort> </configuration> </plugin>
- 方案2:延长插件等待启动的超时时间
部分场景下应用启动完成后JMX端口注册延迟,导致插件提前超时抛出连接错误,可以调整等待时长:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <wait>1000</wait> <maxAttempts>20</maxAttempts> </configuration> </plugin>
- 方案3:直接使用
run目标替代start目标
如果不需要将应用作为后台进程启动(start目标是后台启动,通常用于集成测试前置启动应用),直接运行mvn spring-boot:run即可,该目标不会依赖JMX端口检测启动状态,不会触发该报错。 - 方案4:显式开启应用的JMX配置
在application.properties或application.yml中添加配置,确保应用启动时开启JMX并暴露相关端点:
spring.jmx.enabled=true spring.application.admin.enabled=true
内容的提问来源于stack exchange,提问作者Faelivrinx
相关产品推荐
相关产品推荐

