将 Java Mission Control 连接到 Wildfly 16

Connect Java Mission Control to Wildfly 16

我尝试将 Java Mission Control (JMC) 与 Wildfly 16 连接。应用程序服务器位于 Docker 上。

我通过 jconsole 成功连接到 wildfly,为了管理它,我按照此处描述的步骤进行操作。

很遗憾,我无法通过 JMC 连接。我使用的 URL 如下所示:

service:jmx:remoting-jmx://192.168.99.100:9990

  • 我试图将 Xbootclasspath 设置为 jboss-cli-client.jar ,因为它被描述为here,但我只是得到 Unable to connect 错误。
  • 我设置了用于 jconsole 的相同 jar,但我仍然得到了 Unable to connect
  • 我尝试在容器站点上添加标志,如此处所示,但是有了这些标志,即使 Wildfly 也没有启动。

然后,我在这里找到了对一些 jboss 类进行硬编码以通过 remoting-jmx 启用连接的想法。我根据wildfly16提供的这些更改了jar的版本并将其放入jmc.ini中。

1
-Xbootclasspath/a:"C:/Program Files/Java/jdk-10.0.2/lib/missioncontrol/dropins/jboss-cli-client.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/remoting-jmx/main/remoting-jmx-3.0.1.Final.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/remoting/main/jboss-remoting-5.0.8.Final.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/logging/main/jboss-logging-3.3.2.Final.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/xnio/main/xnio-api-3.6.5.Final.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/xnio/nio/main/xnio-nio-3.6.5.Final.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/marshalling/main/jboss-marshalling-2.0.6.Final.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/marshalling/river/main/jboss-marshalling-river-2.0.6.Final.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/as/cli/main/wildfly-cli-8.0.0.Final.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/staxmapper/main/staxmapper-1.3.0.Final;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/as/protocol/main/wildfly-protocol-8.0.0.Final.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/dmr/main/jboss-dmr-1.5.0.Final.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/as/controller-client/main/wildfly-controller-client-8.0.0.Final.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/threads/main/jboss-threads-2.3.3.Final.jar;C:/wildfly-16.0.0.Final/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-2.1.7.Final.jar"

在那之后,最后,我还有一个错误,就是

Could not initialize class org.jboss.remotingjmx.RemotingConnector

我将 remoting-jmx-3.0.1.Final 的依赖项添加到 Xbootclasspath,但我仍然遇到同样的错误。

我的问题是,您知道如何使这种连接有效吗?也许有人以不同的方式做到了?

任何建议我如何调试这个问题,将是无价的?因为我不知道如何解决它。


  • 在 %WILDFLY_HOME%\\\\\\\\bin\\\\\\\\standalone.conf.bat
    放:

    设置"JAVA_OPTS=%JAVA_OPTS% -XX: FlightRecorder"

  • 在 jmc.ini 下面 -vmargs put

    -Xbootclasspath/a:C:\\\\\\\\%wildfly_home%\\\\\\\\bin\\\\\\\\client\\\\\\\\jboss-cli-client.jar

  • (%wildfly_home%当然不一样,或者直接把jboss-cli-client.jar复制到另一个目录,改正路径)
    3. 运行 JMC,然后创建新连接 - 在连接属性窗格中按下按钮"自定义 JMX 服务 URL",输入:

    1
    service:jmx:http-remoting-jmx://localhost:9990

    在凭据字段中只需输入用户和密码,它们应该为领域管理创建(例如,使用 %wildfly_home%\\\\\\\\bin\\\\\\\\add-user.bat)
    希望这对某人有帮助。