用JDK5.0的jconsole來(lái)連接MBbean
前面所有看效果都是通過(guò)Html網(wǎng)頁(yè)來(lái)看的。JDK5.0自帶了一個(gè)jmx客戶端,叫jconsole,位于c:\jdk\bin\jconsole.exe。我們來(lái)用用這個(gè)客戶端來(lái)連接Mbean Server。
一、vm參數(shù)方式
1、還是用第一篇的那個(gè)HelloAgent,修改HelloAgent,將第一句:
MBeanServer server = MBeanServerFactory.createMBeanServer();
改為:MBeanServer server = ManagementFactory.getPlatformMBeanServer();
注:ManagementFactory的全路徑為:java.lang.management.ManagementFactory
2、修改Eclipse的run選項(xiàng),把“-Dcom.sun.management.jmxremote=HelloAgent”這一句加入到run選項(xiàng)中
3、運(yùn)行HelloAgent,然后在Dos窗口輸入“jconsole”來(lái)啟到JConsole
4、單擊“連接”
二、RMI方式
還是用jconsole,但方式變了。這里不需要象上面那樣修改Eclipse run的vm選項(xiàng)。
1、還是用第一篇的HelloAgent,加上一段代碼,啟動(dòng)一個(gè)JMXConnectorServer服務(wù)
- 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運(yùn)行一個(gè)命令:rmiregistry 9999
3、運(yùn)行HelloAgent,然后再在dos下運(yùn)行命令jconsole
輸入service:jmx:rmi:///jndi/rmi://localhost:9999/server
三、總結(jié)
連接MBeanServer的方式除了Html、JConsole,還有一些第三方的客戶端,比較有名的是MC4j,通過(guò)這些客戶端我們可以很容易去訪問(wèn)MBean。這也就是我們?yōu)槭裁匆?span id="wmqeeuq" class="hilite2">JMX的其中一個(gè)原因:試想如果我自己搞一套標(biāo)準(zhǔn),勢(shì)必要自己開(kāi)發(fā)一個(gè)客戶端,那會(huì)是一個(gè)不小的工作量。
posted on 2008-07-22 16:34 找個(gè)美女做老婆 閱讀(321) 評(píng)論(0) 編輯 收藏