如何使用没有JConsole的JMX执行方法?使用没有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,它不起作用的其他原因。
*“请不要推荐JConsole的,它不会因为其他原因的工作。 “*请说明原因。 –
我们希望将此功能嵌入到我们的应用程序中,因此,当我们分发给客户端时,他们可以使用Jconsole –