JConsoleなしでJMXでメソッドを実行するには?
Java コードから JMX を介してメソッドを呼び出したいと考えています。以下のコードを使用すると、MBean インターフェイスのすべてのメソッドの名前を取得できますが、実際にそれらを実行することはまだできません。まだ何かが足りないので、誰か助けてくれませんか?
private static String connectJmx() {
StringBuilder sb = new StringBuilder();
JMXServiceURL serviceUrl;
JMXConnector jmxConnector = null;
try {
serviceUrl = new JMXServiceURL(URL);
jmxConnector = JMXConnectorFactory.connect(serviceUrl, null);
MBeanServerConnection mbeanConn = jmxConnector.getMBeanServerConnection();
ObjectName objectName = ObjectNameProvider.getObjectName();
MBeanInfo info = mbeanConn.getMBeanInfo(objectName);
MBeanOperationInfo[] operations = info.getOperations();
for (int i = 0; i < operations.length; i++) {
sb.append(operations[i].getName()).append("\n");
}
}
catch (Exception e) {
LogManager.doLog(LOG, LOGLEVEL.INFO, "exception connection jmx", e);
} finally {
try {
if(jmxConnector != null){
jmxConnector.close();
}
} catch (IOException e) {
//
}
}
return sb.toString();
}
上記の for サイクルは、メソッドの名前を収集します。名前を収集する代わりに、実際にそれらを実行するようなものが欲しいです。JConsole はお勧めしません。他の理由で動作しません。