首先贴三个代码文件 Hello, HelloMBean, HelloAgent
--------------------------------------------------
Hello.java
public class Hello implements HelloMBean{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void printHello() {
System.out.println("Hello World, "+name);
}
public void printHello(String whoName)
{
System.out.println("Hello, "+whoName);
}
}
-----------------------------------------------------------------
HelloMBean.java
public interface HelloMBean {
public String getName();
public void setName(String name);
public void printHello();
public void printHello(String whoName);
}
------------------------------------------------------------------
HelloAgent.java
import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import com.sun.jdmk.comm.HtmlAdaptorServer;
public class HelloAgent {
public static void main(String[] args) throws Exception
{
MBeanServer server=ManagementFactory.getPlatformMBeanServer();
ObjectName helloName=new ObjectName("tina:name=Hello World");
server.registerMBean(new Hello(), helloName);
ObjectName adapterName =new ObjectName("HelloAgent:name=htmladapter,port=8082") //设置8082端口;
HtmlAdaptorServer adaptor=new HtmlAdaptorServer();
server.registerMBean(adaptor, adapterName);
adaptor.start();
System.out.println("start.....");
}
}
运行HelloAgent后,再访问http://locathost:8082就可以看到效果
心得:JMX暴露MBean中的方法,而方法的具体实现则由注册的类Hello来完成