二、JMX註冊例子

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裏,咱們就能夠動態的修改或訪問它。

相關文章
相關標籤/搜索