Попытка вызвать функции JMX Mbean из командной строки

Мое приложение работает на Wildfly-8.0.1. В настоящее время я могу запускать методы MBean через JConsole с помощью сервиса:jmx:http-remoting-jmx://localhost:9990.

Я хочу написать сценарий для запуска этих команд, но я не нашел вспомогательного инструмента для этого.

Я попробовал ниже инструменты, но кажется, что они не поддерживают протокол http-remoting-jmx или, может быть, я не использую правильно 1. JMXTerm 2. Cmdline_JMXClient 3. JManage 4. CJMX

Вот ошибка от JMXTerm

$> открытый сервис:jmx:http-remoting-jmx://localhost:9990 RuntimeIOException: исключение ввода-вывода во время выполнения: неподдерживаемый протокол: http-remoting-j mx

любая помощь будет принята с благодарностью.

1 ответ

Решение

Создайте пользовательский файл JAR, используя класс ниже.

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));

    }
}
Другие вопросы по тегам