Попытка вызвать функции 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));
}
}