7、用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=HelloAgent这一句加入到run选项中,修改如下图:

 

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

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

 

二、RMI方式

 

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

 

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

import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
import javax.management.remote.JMXConnectorServer;
import javax.management.remote.JMXConnectorServerFactory;
import javax.management.remote.JMXServiceURL;

import com.sun.jdmk.comm.HtmlAdaptorServer;

public class HelloAgent {
    public static void main(String args[]) throws Exception {
        MBeanServer server = MBeanServerFactory.createMBeanServer();

        ObjectName helloName = new ObjectName("chengang:name=HelloWorld");
        Hello hello = new Hello();
        server.registerMBean(hello, helloName);
        ObjectName adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8082");
        HtmlAdaptorServer adapter = new HtmlAdaptorServer();
        server.registerMBean(adapter, adapterName);
        adapter.start();
        System.out.println("start.....");

        // Create an RMI connector and start it
        JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/server");

        JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
        cs.start();
        System.out.println("rmi start.....");
    }
}

  

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

 

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

 

三、总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值