<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
    主站蜘蛛池模板: 久久狠狠爱亚洲综合影院| 亚洲AV午夜福利精品一区二区| 99xxoo视频在线永久免费观看| 99热在线观看免费| 亚洲日本中文字幕| 在线观看永久免费| 不卡精品国产_亚洲人成在线| 亚洲国产成人久久综合碰碰动漫3d| 亚洲熟妇无码AV| 亚洲色最新高清av网站| 91在线视频免费播放| 亚洲成AV人片一区二区| 国产成人不卡亚洲精品91| 免费萌白酱国产一区二区| 亚洲人成在线电影| 2021久久精品免费观看| 中文亚洲成a人片在线观看| 中文字幕乱码免费看电影| 亚洲视频在线观看| 精品久久久久久国产免费了| 亚洲国产一成人久久精品| 国产无遮挡无码视频免费软件| 国产不卡免费视频| 男女一边摸一边做爽的免费视频| 精品久久免费视频| 亚洲精品在线免费观看视频| 无码少妇一区二区浪潮免费| 男女超爽视频免费播放| 最新中文字幕电影免费观看| 国产AV无码专区亚洲AV琪琪| 亚洲精品乱码久久久久久中文字幕| 性生大片视频免费观看一级| 成人免费在线观看网站| 一级毛片免费视频网站| 亚洲国产精品狼友中文久久久| 亚洲人成www在线播放| 亚洲精品国产V片在线观看| 日本一区二区三区免费高清在线| 日本免费人成黄页网观看视频 | 久久精品国产亚洲αv忘忧草 | 亚洲制服丝袜一区二区三区|