需要MBean接口的JMX客户端

时间:2015-10-13 06:29:54

标签: java jmx mbeans

我是JMX技术的新手,如果我理解正确的话: 有两种方法可以调用Mbeans上的操作:

1)使用MBeanServerConnection的调用操作,并使用 $ rbenv which ruby /home/deploy/.rbenv/versions/2.1.2/bin/ruby

将方法名称作为String提供

2)使用mbsc.invoke(name, operationName, params, signature)获取MBean接口并调用接口上的操作。

我的问题是,如果我想使用上面提到的第二种方法,我是否还需要在我的客户端中使用Mbean接口? Mbean接口是我要监视的主应用程序源的一部分。我是否还需要将相同的Mbean接口复制到客户端代码中?

1 个答案:

答案 0 :(得分:2)

对我而言,没有best practice,因为决定取决于您的需求。

在下面找到我的个人意见。

mbsc.invoke(name, operationName, params, signature)

如果客户端应用程序严格依赖于执行MBean的应用程序,则客户端应用程序不应依赖于该接口。以jconsole实用程序为例。它可以调用所有公开的操作,而无需访问mbean接口类。

JMX.newMBeanProxy(connection, objectName, interfaceClass)

如果客户端应用程序与执行MBean的应用程序有很强的依赖关系(例如,您为应用程序提供了mbean,而客户端应用程序是您的支持工具),那么当您获得好处时,我会选择此解决方案编译时检查。