【问题描述】
新创建一个 SpringBoot 项目运行,出现一下异常:
java.io.IOException: The server sockets created using the LocalRMIServerSocketFactory only accept connections from clients running on the host where the RMI remote objects have been exported.
at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:114) ~[na:1.8.0_211]
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:405) [na:1.8.0_211]
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377) [na:1.8.0_211]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_211]
【解决方法】
解决方法有两种:
- 修复 etc 主机
- 禁用本地主机检查:有两种方法
- 系统级别:取消行注释
com.sun.management.jmxremote.local.only=false
在 jre/lib/management/management.properties
注意:在安装 JDK 时,在 JDK 内有一个 JRE 环境,另外在安装完成 JDK 后提示安装一个 JRE 环境,两个环境均需要配置,因为在未配置 IDE 时,不知道读取的是哪个 JRE,也可以在 IDE 中指定 JRE,在指定的 JRE 中配置。- 基于进程的,使用命令行:pass -Dcom.sun.management.jmxremote.local.only=false
在个人配置中出现的问题是第二种情况,取消行注释即可。