You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JBoss 6.4 JConsole远程连接JMX报错:non-JRMP server at remote endpoint

解决Windows下JConsole远程连接JBoss 6.4 JMX时的"non-JRMP server"错误

这个错误的根源很清楚:你直接用JConsole连接JBoss的management-native端口(9999),但这个端口用的是JBoss专属的Remoting协议,而JConsole默认用的是JRMP(RMI)协议,所以才会报“非JRMP服务器”的错误。下面给你几个可行的解决办法:

方法一:使用JMX Remoting Connector URL连接

JBoss 6.4是通过Remoting暴露JMX服务的,你需要用特定的JMX服务URL来连接,而不是直接填IP:端口:

  1. 打开JConsole,选择「远程进程」
  2. 在输入框里填入以下格式的URL:
    service:jmx:remoting-jmx://192.168.1.1:9999
    
  3. 输入JBoss CLI的用户名和密码,点击连接即可

方法二:将JBoss客户端Jar包加入JConsole类路径

JConsole默认没有JBoss Remoting的相关依赖,所以需要手动指定类路径加载必要的Jar包。在Windows命令行执行以下命令(把<JBOSS_HOME>替换成你的JBoss安装路径):

jconsole -J-Djava.class.path=%JAVA_HOME%\lib\jconsole.jar;%JAVA_HOME%\lib\tools.jar;<JBOSS_HOME>\bin\client\jboss-client.jar

启动JConsole后,再用上面的service:jmx:remoting-jmx://192.168.1.1:9999 URL和凭据连接。

方法三:检查JBoss的JMX暴露配置

虽然你已经配置了<remoting-connector use-management-endpoint="true"/>,但还是可以确认以下几点:

  • 确保management接口绑定的是Windows机器能访问到的IP(比如192.168.1.1,而不是localhost),可以在standalone-full.xml的<interfaces>部分查看:
    <interface name="management">
        <inet-address value="${jboss.bind.address.management:192.168.1.1}"/>
    </interface>
    
  • 确认JBoss启动后确实在监听9999端口,在远程主机上执行netstat -ano | findstr 9999就能看到端口状态

额外排查点

  • 如果你用的是JDK 8及以上版本,JConsole的安全设置可能需要调整,可以尝试用以下参数启动JConsole:
    jconsole -J-Djava.security.auth.login.config=<JBOSS_HOME>\bin\client\jboss-cli-jmx.login.config -J-Djava.security.policy=<JBOSS_HOME>\bin\client\jboss-cli.policy
    
  • 确认Windows机器和JBoss主机之间的防火墙没有拦截9999端口,你已经用tcpdump看到请求,但可以再用telnet 192.168.1.1 9999测试一下端口是否通

内容的提问来源于stack exchange,提问作者Nic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:00:49