我遇到了以编程方式连接到本地JMX服务器的问题。我加倍检查了JMX服务器,看起来很好,但我仍然无法连接。
但是,使用JConsole,我没有问题。
无论如何从JConsole找到正确的服务器URL?
顺便说一句,这是我正在尝试连接的服务器:
String jmxServer = "service:jmx:rmi:///jndi/rmi://localhost:" + DEFAULT_PORT + "/jmxrmi";
这些是我正在启动我的流程的JVM选项:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=DEFAULT_PORT
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
答案 0 :(得分:0)
在你的代码中,打印出系统属性
com.sun.management.jmxremote.localConnectorAddress
应该为您提供本地连接器地址。
然后从您的客户端
final JMXServiceURL jmxURL = new JMXServiceURL(localConnectorAddress);
final JMXConnector connector = JMXConnectorFactory.connect(jmxURL);
final MBeanServerConnection mbsc = connector.getMBeanServerConnection();
应该这样做......(做得好,就像我做的那样)