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

WildFly 10配置JMX远程监控失败:端口未监听服务无法启动

解决WildFly 10.1 JMX远程监听配置问题

问题根源

你同时配置了WildFly原生JMX子系统与Oracle JDK原生JMX远程参数,两者机制冲突导致服务无法启动,且无端口监听。


正确配置步骤

1. 移除冲突的JVM启动参数

删除启动脚本中添加的所有-Dcom.sun.management.jmxremote.*参数,这类参数属于JDK原生JMX配置,与WildFly自带的JMX子系统不兼容:

-Dcom.sun.management.jmxremote.port=8999 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.rmi.port=8999 

2. 调整standalone.xml配置

WildFly通过自身的JMX子系统暴露远程监控,需修改以下两处配置:

2.1 修改JMX子系统节点

找到<subsystem xmlns="urn:jboss:domain:jmx:1.3">,替换为:

<subsystem xmlns="urn:jboss:domain:jmx:1.3">
    <expose-resolved-model/>
    <expose-expression-model/>
    <remoting-connector use-management-endpoint="false" socket-binding="jmx-remote"/>
</subsystem>

use-management-endpoint="false"表示不使用默认管理端口,改用自定义socket绑定。

2.2 添加自定义socket绑定

找到<socket-binding-group>节点,插入新的端口绑定:

<socket-binding name="jmx-remote" port="${jboss.jmx.remote.port:8999}"/>

若需要监听所有网卡(即0.0.0.0),可调整management接口配置:

<interface name="management">
    <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
</interface>

3. 验证配置

启动WildFly后,执行以下命令检查端口监听状态:

ss -tuna | grep LISTEN

预期输出:

tcp  LISTEN     0      50           0.0.0.0:8999                0.0.0.0:*

4. 远程连接测试

使用JConsole/VisualVM连接时,JMX服务URL格式为:

service:jmx:remote+http://<服务器IP>:8999
  • 测试环境可关闭认证:在management子系统中禁用身份校验(不推荐生产环境)
  • 生产环境建议执行${WILDFLY_HOME}/bin/add-user.sh创建管理用户,用该账号连接JMX

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 21:23:15