尝试从命令行触发 JMX Mbean 函数

Trying to trigger JMX Mbean functions from command line

我的应用程序在 Wildfly-8.0.1 上 运行。目前,我可以使用 service:jmx:http-remoting-jmx://localhost:9990 通过 JConsole 触发 MBean 方法。

我想编写一些脚本来触发这些命令,但我没有找到实现该功能的支持工具。

我尝试了以下工具,但它们似乎不支持 http-remoting-jmx 协议,或者可能是我没有以正确的方式使用 1.JMX术语 2. Cmdline_JMXClient 3.J管理 4. CJMX

这是来自 JMXTerm 的错误

$>打开service:jmx:http-remoting-jmx://localhost:9990 RuntimeIOException:运行时 IO 异常:不支持的协议:http-remoting-j mx

如有任何帮助,我们将不胜感激。

使用以下方法创建自定义 jar 文件 class。

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 JMXCli {

    //private static List<String> operations;

    private static final String SERVICE_URL = "service:jmx:http-remoting-jmx://";

    public static void main(String[] args) throws Exception {

        JMXServiceURL url = new JMXServiceURL(SERVICE_URL + args[0]);

        JMXConnector connector = JMXConnectorFactory.connect(url);

        MBeanServerConnection connection = connector.getMBeanServerConnection();

        ObjectName objectName = new ObjectName("com.xyz.com:name=<<Your MBean class name>>");

        System.out.println(connection.invoke(objectName, args[1], null, null));

    }
}