用JDK5.0的JConsole 来连接MBean

前面所有看效果都是通过Html网页来看的。JDK5.0自带了一个jmx客户端,叫jconsole,位于c:\jdk\bin\jconsole.exe。我们来用用这个客户端来连接Mbean Server

 

一、vm参数方式

 

1、还是用第一篇的那个HelloAgent,修改HelloAgent,将第一句:

MBeanServer server = MBeanServerFactory.createMBeanServer();

改为:MBeanServer server = ManagementFactory.getPlatformMBeanServer();

注:ManagementFactory的全路径为:java.lang.management.ManagementFactory

 

2、修改Eclipserun选项,把-Dcom.sun.management.jmxremote=EasywayServiceBeanMgmtAgent这一句加入到run选项中,修改如下图:

 

 

3、运行HelloAgent,然后在Dos窗口输入“jconsole”来启到JConsole,得到如下界面。 

4、单击连接,进入以下界面:

 

 

二、RMI方式

 

  还是用jconsole,但方式变了。这里不需要象上面那样修改Eclipse runvm选项。

 

1、还是用第一篇的EasywayServiceBeanMgmtAgent,加上一段代码,启动一个JMXConnectorServer服务

package com.easyway.apache.moduler.jmx; import java.lang.management.ManagementFactory; import javax.management.MBeanServer; import javax.management.ObjectName; import javax.management.modelmbean.RequiredModelMBean; import javax.management.remote.JMXConnectorServer; import javax.management.remote.JMXConnectorServerFactory; import javax.management.remote.JMXServiceURL; import com.sun.jdmk.comm.HtmlAdaptorServer; /** * JMX代理测试的应用 * @author longgangbai * */ public class EasywayServiceBeanMgmtAgent { public static void main(String[] args) throws Exception { MBeanServer server = ManagementFactory.getPlatformMBeanServer(); ObjectName helloName = new ObjectName("easyway:name=HelloWorld"); //获取测试bean的信息 RequiredModelMBean hello = ModelMBeanUtils.createModlerMBean(); //注册MBean对象 server.registerMBean(hello, helloName); //获取对象的 ObjectName adapterName = new ObjectName("EasywayServiceModelBeanAgent:name=htmladapter,port=8082"); HtmlAdaptorServer adapter = new HtmlAdaptorServer(); //注册 server.registerMBean(adapter, adapterName); adapter.start(); System.out.println("start....."); //通过rmi启动JMX服务信息 //JMXServiceURL url=new JMXServiceURL("service:jmx:rmi:///jndi/rmi://192.168.60.86:9999/server"); //JMXConnectorServer cs=JMXConnectorServerFactory.newJMXConnectorServer(url, null,server); // cs.start(); // System.out.println("rmi start....."); } }

 

  

2、在Dos运行一个命令:rmiregistry 9999

 

3、运行EasywayServiceBeanMgmtAgent,然后再在dos下运行命令jconsole,得到如下界面,输入service:jmx:rmi:///jndi/rmi://localhost:9999/server

 

三、总结

  连接MBeanServer的方式除了HtmlJConsole,还有一些第三方的客户端,比较有名的是MC4j,通过这些客户端我们可以很容易去访问MBean。这也就是我们为什么要用JMX的其中一个原因:试想如果我自己搞一套标准,势必要自己开发一个客户端,那会是一个不小的工作量。

 

你可能感兴趣的:(eclipse,jdk,bean,dos,sun)