分享

MBeanServer中instantiate 和 invoke的区别

 开心豆豆2010 2011-11-24

JMX中有两种方式调用另一个MBean中的方法

先创建一个MBean实例,再调用该方法
Java代码  收藏代码
  1. HelloWorldMBean hwmbean = (HelloWorldMBean)server.instantiate("com.acxiom.bilyao.HelloWorld");  
  2. hwmbean.sayHello();  


直接调用该方法:
Java代码  收藏代码
  1. ObjectName on = new ObjectName("HelloAgent:name=helloworld");  
  2. server.invoke(on, "sayHello2"nullnull);  


两者有何区别呢?

前一种方法事实上创建了一个新的MBean实例,对于其方法的调用,都仅限于这个新实例,而对Server上的MBean没有任何影响。

后一种方法则正好相反,Server直接调用了加载其上的MBean的方法,因此也会导致其状态的变化。

因此,对于大多数应用来讲,应该采用第二种方法。第一种方法只在某些特殊情况下才会使用。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多