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
我将
我的问题是,您知道如何使这种连接有效吗?也许有人以不同的方式做到了?
任何建议我如何调试这个问题,将是无价的?因为我不知道如何解决它。
在 %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)
希望这对某人有帮助。