package com.haogrgr.test.jmx;
import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
/**
* 如果要启动远程管理,需要加上启动参数
* -Dcom.sun.management.jmxremote.port=9999
* -Dcom.sun.management.jmxremote.authenticate=false
* -Dcom.sun.management.jmxremote.ssl=false
*/
public class ServerMain {
@SuppressWarnings("restriction")
public static void main(String[] args) throws Exception {
//如果启动时,加了以下参数,下面的五行代码就不需要了, JVM会自动帮我们执行Agent.premain方法
StringBuilder param = new StringBuilder();
param.append("com.sun.management.jmxremote.port=9999").append(",");
param.append("com.sun.management.jmxremote.authenticate=false").append(",");
param.append("com.sun.management.jmxremote.ssl=false").append(",");
sun.management.Agent.premain(param.toString());
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
// 等价于 ObjectName("com.haogrgr.test.jmx:key=value")
ObjectName name = new ObjectName("com.haogrgr.test.jmx", "key", "value");
HelloServiceImpl hello = new HelloServiceImpl();
mbs.registerMBean(hello, name);
System.err.println("server start !");
Thread.sleep(Integer.MAX_VALUE);
}
}