java - JMX 客户端需要 MBean 接口(interface)

标签 java jmx mbeans

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

1) 使用 MBeanServerConnection 的调用操作并使用 mbsc.invoke(name, operationName, params,signature) 以字符串形式提供方法名称

2) 使用JMX.newMBeanProxy(connection, objectName, interfaceClass)获取MBean接口(interface)并调用接口(interface)上的操作。

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

最佳答案

对我来说,没有最佳实践,因为决定取决于您的需求。

下面是我的个人观点。

mbsc.invoke(名称、操作名称、参数、签名)

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

JMX.newMBeanProxy(连接、objectName、interfaceClass)

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

关于java - JMX 客户端需要 MBean 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33095631/

相关文章:

java - File.getCanonicalPath() 失败示例

java - 使用 ArrayList 计算文件中整数出现的次数

java - 使用 JMX/MBean 监控 Cassandra CPU 使用情况

java - 自动启动 JBoss 服务 (MBean)

java - CDI 生产商利益

java - 远程JMX监控 Jconsole JDK 1.7.0_91

tomcat - 我应该如何使用 JMX 监控 tomcat 上的 Web 应用程序?

java - JMX 端口动态分配

java - 确保 MBean 操作的安全

java - 如何捕获 Volley 中的意外响应错误