1、簡介html
JMX(Java Management Extensions)是一個爲應用程序植入管理功能的框架。主要用於管理和監控程序,本節以一個簡單的例子理解怎樣管理MBean。java
2、準備工做web
JMX有一套標準,SUN公司JDK提供了實現該套標準的JMX接口。基於JDK就能夠開發出JMX代碼了。瀏覽器
一、 安裝JDK1.7框架
二、 代碼中用到了HtmlAdaptorServer接口,因此須要引入jmxtools.jar包。ui
三、 開發環境:Eclipse + JDk1.7this
3、代碼實例代理
3.1 configmbean代碼code
package com.muyu.jmx; public interface ConfigMBean { public String getConfigLocation(); public void printConfigLocation(); public void printConfigLocation(String configLocation); public void setConfigLocation(String i_ConfigLocation); }
3.2 config代碼server
package com.muyu.jmx; public class Config implements ConfigMBean { private String configLocation; public String getConfigLocation() { return configLocation; } public void printConfigLocation() { System.out.println(configLocation); } public void printConfigLocation(String i_ConfigLocation) { System.out.println(i_ConfigLocation); } public void setConfigLocation(String i_ConfigLocation) { this.configLocation = i_ConfigLocation; } }
3.3 server代碼
package com.muyu.jmx; import javax.management.MBeanServer; import javax.management.MBeanServerFactory; import javax.management.ObjectName; import com.sun.jdmk.comm.HtmlAdaptorServer; /** * this class is used for test. * * @author LuisFigo */ public class Server { public static void main(String[] args) { MBeanServer server = MBeanServerFactory.createMBeanServer(); ObjectName configName; try { configName = new ObjectName("LuisFigo:name=config"); Config config = new Config(); server.registerMBean(config, configName); ObjectName adapterName = new ObjectName("ConfigAgent:name=htmladapter,port=8000"); HtmlAdaptorServer adapter = new HtmlAdaptorServer(); adapter.setPort(8000); server.registerMBean(adapter, adapterName); adapter.start(); System.out.println("adapter start ... "); } catch (Exception e) { e.printStackTrace(); } } }
<dependency> <groupId>org.glassfish.external</groupId> <artifactId>opendmk_jdmkrt_jar</artifactId> <version>1.0-b01-ea</version> </dependency>
說明
先建立一個MBean服務容器,將configMBean和HtmlAdaptorServer註冊進去,HtmlAdaptorServer其實也是一個代理,默認端口號爲8082,咱們在這設置爲8000, Server運行事後,在瀏覽器裏輸入http://localhost:8000便可看到圖1界面。點擊LuisFigo域下的name=config進入圖2,在最下面的文本框裏輸入helloworld,點擊printConfigLocation進入圖3顯示執行成功的信息。觀察Eclipse控制檯裏出現了helloworld,這說明已經調用了服務端config的相應方法。
4、 總結
從上面的例子中咱們能夠知道,經過web網頁形式能夠訪問和控制服務端程序中的MBean了。如今若是把系統中的一些參數放在MBean裏,咱們就能夠動態的修改或訪問它。