google guice 入门教程08 -凯发k8网页登录

关注后端架构、中间件、分布式和并发编程

   :: 凯发k8网页登录首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  111 随笔 :: 10 文章 :: 2680 评论 :: 0 trackbacks

4.3 guice与jmx

guice官方提供一个jmx的插件guice-jmx-2.0.jar。在这个插件中我们可以很方便的将凯发k8网页登录的服务发不成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 

这里比较关键的是我们要将凯发k8网页登录的服务注入到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服务。

在这里我们就可以看到我们的jmxdemo的进程了。然后选择连接。

下面的图显示了我们执行sayhello方法的结果。

当然了我们可以自己写一个client的程序来处理凯发k8网页登录的服务。


 1 public class jmxclientdemo {
 2 
 3     public static void main(string[] args) throws exception{
 4         jmxserviceurl url = new jmxservice;
 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 
上一篇:(1)
下一篇:待续

©2009-2014 imxylz
|求贤若渴
posted on 2009-12-31 15:35 imxylz 阅读(19750) 评论(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
nice,谢谢楼主,最近在使用guice,学习了  回复  
  


©2009-2014
网站地图