<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    xylz,imxylz

    關注后端架構、中間件、分布式和并發編程

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      111 隨筆 :: 10 文章 :: 2680 評論 :: 0 Trackbacks

    4.3 Guice與JMX

    Guice官方提供一個JMX的插件guice-jmx-2.0.jar。在這個插件中我們可以很方便的將我們的服務發不成JMX可管理的MBean。本教程中我們繼續探討這個話題。

    老套了,我們的HelloWorld服務,注意這個服務為了滿足JMX的規范,接口名稱以MBean結尾,而實現類必須不帶MBean。

    1 public interface HelloWorldMBean {
    2     String sayHello();
    3 }

     

    然后是實現類HelloWorld。


     1 public class HelloWorld implements HelloWorldMBean {
     2 
     3     @Override
     4     public String sayHello() {
     5         return "Hello, guice";
     6     }
     7     @Inject
     8     public void register(MBeanServer server) {
     9         try {
    10             server.registerMBean(thisnew ObjectName("xylz guice demo:type=HelloWorld"));
    11         } catch (Exception e) {
    12             e.printStackTrace();
    13         }
    14     }
    15 }
    16 

    這里比較關鍵的是我們要將我們的服務注入到JMX服務器中。

    然后寫一個JMX的服務端例子。


     1 public class JMXDemo {
     2 
     3     public static void main(String[] args) throws Exception{
     4        Injector inj= Guice.createInjector(new Module() {
     5             @Override
     6             public void configure(Binder binder) {
     7                 binder.bind(MBeanServer.class).toInstance(ManagementFactory.getPlatformMBeanServer());
     8                 binder.bind(HelloWorldMBean.class).to(HelloWorld.class);
     9             }
    10         });
    11        //
    12        Manager.manage("guice-jmx-demo", inj);
    13        //
    14        Thread.sleep(10000*600);//sleep for ten minute
    15     }
    16 
    17 }
    18 

    在這個例子中我們綁定MBeanServer到Guice中,然后通過Guice的JMX插件將我們的HelloWorldMBean服務到JMX中。最后暫停10分鐘阻止我們的程序立即退出,當然你可以寫一個while的死循環。

    特別注意,在eclipse中需要設置JVM的參數才能正確啟動我們的JMX服務。見下面。

    -Dcom.sun.management.jmxremote
    -Dcom.sun.management.jmxremote.port=4321
    -Dcom.sun.management.jmxremote.authenticate=false
    -Dcom.sun.management.jmxremote.ssl=false

    然后使用我們的jconsole來查看我們的JMX服務。

    image

    在這里我們就可以看到我們的JMXDemo的進程了。然后選擇連接。

    下面的圖顯示了我們執行sayHello方法的結果。

    image

    當然了我們可以自己寫一個client的程序來處理我們的服務。


     1 public class JMXClientDemo {
     2 
     3     public static void main(String[] args) throws Exception{
     4         JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://127.0.0.1:4321/jmxrmi");
     5         JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
     6         MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
     7         //
     8         ObjectName mbeanName = new ObjectName("xylz guice demo:type=HelloWorld");
     9         //
    10         HelloWorldMBean helloWorld = JMX.newMBeanProxy(mbsc, mbeanName, HelloWorldMBean.classtrue);
    11         String msg=helloWorld.sayHello();
    12         System.out.println(msg);
    13     }
    14 
    15 }
    16 
    上一篇:Google Guice 入門教程07 - 整合第三方組件(1)
    下一篇:待續

    ©2009-2014 IMXYLZ |求賢若渴
    posted on 2009-12-31 15:35 imxylz 閱讀(19867) 評論(3)  編輯  收藏 所屬分類: J2EEGoogle Guice

    評論

    # re: Google Guice 入門教程08 - 整合第三方組件(2) 2009-12-31 21:29 凡客誠品羽絨服
    阿開始大世界頂級  回復  更多評論
      

    # re: Google Guice 入門教程08 - 整合第三方組件(2) 2010-01-02 18:30 在線詞典
    不錯....  回復  更多評論
      

    # re: Google Guice 入門教程08 - 整合第三方組件(2) 2015-11-16 21:49 rfbingo
    nice,謝謝樓主,最近在使用guice,學習了  回復  更多評論
      


    ©2009-2014 IMXYLZ
    主站蜘蛛池模板: 国产精品亚洲不卡一区二区三区| 国产乱弄免费视频| 亚洲综合在线视频| 国产激情免费视频在线观看| 国产V亚洲V天堂无码久久久| AAA日本高清在线播放免费观看| 亚洲AV永久无码精品| 最近免费中文字幕mv电影| 亚洲成人免费在线观看| 拨牐拨牐x8免费| 免费观看又污又黄在线观看| 亚洲性在线看高清h片| 免费观看91视频| 亚洲精品国产专区91在线| 无码专区永久免费AV网站| 亚洲AV色无码乱码在线观看| 亚洲高清免费视频| 今天免费中文字幕视频| 亚洲无圣光一区二区| 国产美女做a免费视频软件| 亚洲阿v天堂在线2017免费| 亚洲精品综合一二三区在线| 一个人免费观看www视频在线| 亚洲码欧美码一区二区三区| 亚洲精品NV久久久久久久久久| 你懂的免费在线观看| 亚洲国产日韩在线一区| 免费观看国产精品| 久久久久久国产精品免费免费男同 | 亚洲国产精品专区在线观看| 两个人看的www免费视频| 亚洲沟沟美女亚洲沟沟| 国产免费观看黄AV片| 大地资源网高清在线观看免费| 亚洲国产日韩在线成人蜜芽| 亚洲国产精品专区在线观看| 84pao强力永久免费高清| 男男黄GAY片免费网站WWW| 亚洲AV本道一区二区三区四区| 妞干网免费视频在线观看| 丝袜捆绑调教视频免费区|