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

使用Corretto的JConsole连接WildFly 26失败,求解决方法

WildFly 26 + Java 11 无法通过JConsole连接JMX的解决思路
  • 检查WildFly JMX远程访问配置
    WildFly 10及以后版本,JMX远程访问的默认配置逻辑和WildFly 9存在差异。编辑standalone/configuration/standalone.xml(域模式下为domain.xml),找到JMX子系统配置块,调整如下:

    <subsystem xmlns="urn:jboss:domain:jmx:1.6">
        <expose-resolved-model/>
        <expose-expression-model/>
        <remoting-connector/>
        <!-- 开启远程访问并关联安全域 -->
        <remote-access security-realm="ManagementRealm"/>
        <!-- 若需允许外部机器连接,修改绑定地址为0.0.0.0 -->
        <connector name="jmx-connector" bind-address="0.0.0.0" port="9990"/>
    </subsystem>
    

    配置完成后重启WildFly,确保remote-access关联的安全域正确(默认是ManagementRealm)。

  • 适配Java 11的JVM参数
    Java 9+对JMX/RMI的默认行为做了调整,需在WildFly启动脚本(standalone.conf或domain.conf)中添加以下JVM参数:

    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9990"
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.rmi.port=9990"
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
    JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=你的服务器IP或localhost"
    

    注意:生产环境建议开启ssl=true并配置严格的认证规则。

  • 本地连接的特殊处理
    若本地JConsole无法识别WildFly实例,可通过进程ID直接连接:

    1. 执行jps命令获取WildFly的进程ID(对应进程通常为jboss-modules.jar)
    2. 打开JConsole,在“本地进程”输入框手动输入pid:<进程ID>,回车尝试连接
  • 验证管理端口与认证信息

    1. 先用WildFly命令行客户端测试端口可用性:./jboss-cli.sh --connect controller=localhost:9990,能成功连接则说明端口正常
    2. 远程连接JConsole时,需使用正确的JMX URL:service:jmx:remote+http://<服务器IP>:9990,并输入通过add-user.sh添加的管理用户名和密码(默认强制认证)
  • 排查端口与防火墙问题

    • 用netstat -tulpn | grep 9990(Linux)或netstat -ano | findstr 9990(Windows)检查端口是否被WildFly占用
    • 确保服务器防火墙允许9990端口(或自定义JMX端口)的入站流量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 03:32:44