照会したオブジェクト名に問題がないことがわかりました。実際、これは JConsole にあるものと同じです。スクリーンショットの右側に完全な構文を示します。
さらに、いくつかのシステム プロパティを Eclipse 実行構成に追加する必要がありました。
-Dcom.sun.management.jmxremote.rmi.port=8700 -Dcom.sun.management.jmxremote.port=8600 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
次に、ポート 8600 を使用して接続できます。コードでは:
package com.awgtek.miscpocs.lognfetch.client;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
public class TestJMXConn {
public static void main(String[] args) throws Exception {
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:8600/jmxrmi");
JMXConnector connect = JMXConnectorFactory.connect(url);
MBeanServerConnection mbsc = connect.getMBeanServerConnection();
// ObjectName o = new ObjectName("com.netflix.servo:name=countSuccess,type=HystrixCommand,instance=LogAndFetchRestServicePostCommand");
ObjectName o = new ObjectName("com.netflix.servo:name=countSuccess,type=HystrixCommand,instance=LogAndFetchRestServiceGetCommand");
Object value = mbsc.getAttribute(o, "value");
System.out.println("the value: " + value);
connect.close();
}
}