package com.test.jmx;
import java.io.IOException;
import javax.management.InstanceNotFoundException;
import javax.management.IntrospectionException;
import javax.management.JMX;
import javax.management.MBeanInfo;
import javax.management.MBeanServerConnection;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import javax.management.remote.JMXConnectorServer;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jmx.support.MBeanServerConnectionFactoryBean;
public class JMXTest {
public static void main(String[] args) throws InstanceNotFoundException, IntrospectionException, MalformedObjectNameException, ReflectionException, NullPointerException, IOException {
ApplicationContext context = new ClassPathXmlApplicationContext("jmxClient.xml");
MBeanServerConnection connector = (MBeanServerConnection)context.getBean("clientConnector");
MBeanInfo info = connector.getMBeanInfo(new ObjectName("sobi:name=appInfo"));
System.out.println(info.getClassName());
//System.out.println(info.getOperations());
//AppInfo appinfo = JMX.newMBeanProxy(connector, new ObjectName("stc.skymobi:name=appInfo"), AppInfo.class,true);
//System.out.println(appinfo.getImplementationVendor());
/* String[] domains = connector.getDomains();
for(String bean : domains){
System.out.println(bean);
}*/
}
}
Spring 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="clientConnector"
class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean">
<property name="serviceUrl" value="service:jmx:jmxmp://10.99.89.18:9844" />
</bean>
</beans>
依赖的jar包
jmx.jar jmxremote.jar jmxremote_optional.jar rmissl.jar sasl.jar sunsasl.jar