4

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 はお勧めしません。他の理由で動作しません。

4

2 に答える 2