public static Map<String, Object> getAllAttributes(String host, int port, String mbeanName) throws MalformedObjectNameException, IOException, InstanceNotFoundException, IntrospectionException, ReflectionException, AttributeNotFoundException, MBeanException {
// Get JMX connector and get MBean server connection
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + host + ":" + port + "/jmxrmi");
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
// Query all attributes and values
ObjectName name = new ObjectName(mbeanName);
MBeanInfo info = mbsc.getMBeanInfo(name);
MBeanAttributeInfo[] attrInfo = info.getAttributes();
Map<String, Object> map = new HashMap<>();
for (MBeanAttributeInfo attr : attrInfo) {
if (attr.isReadable()) {
//System.out.println("\t" + attr.getName() + " = " + mbsc.getAttribute(name, attr.getName()));
map.put(attr.getName(), mbsc.getAttribute(name, attr.getName()));
}
}
jmxc.close();
return map;
}