Thursday, October 11, 2018

Remote call JMX Mbean Operation

It's suffering to invoke JMX MBean operation via JConsole (or others) manually, I write following sample code:

import java.io.IOException;
import java.net.MalformedURLException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MBeanServerConnection;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;

public class JMXClient {

public static void main(String[] args) throws MalformedURLException, IOException, MalformedObjectNameException,
InstanceNotFoundException, MBeanException, ReflectionException {
JMXServiceURL url;

url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + JMXHOST + ":" + JMXPORT + "/jmxrmi");

JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
MBeanServerConnection server = jmxc.getMBeanServerConnection();
ObjectName mbeanName = new ObjectName(
"<MBEANNAME>");
System.out.println(server.invoke(mbeanName, "<MBEANOPERATION>", new Object[0], new String[0]));

}

}




No comments:

Post a Comment