java - 我应该如何访问在同一 VM 中运行的 JMX MBeanServer?

标签 java web-applications jmx mbeans

对于一个以恒定间隔执行操作的简单 Java 库,我使用 MXBeans 实现了 JMX 管理,它按预期工作,我可以在 JConsole 中查询状态和设置参数、暂停/恢复操作等。

现在我想创建一个 Web 应用程序 - 来显示和控制图书馆的操作。

我不知道在 Web 应用程序中也使用相同的 JMX API 是否是个好主意,所以我需要一种方法来访问使用平台 MBean 服务器在同一 VM 中注册的 MXBeans:

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();

我注意到 MBeanServer 有一个 queryMBeans 方法。我应该使用这种方法来访问已注册的 JMX API MXBeans 吗?有一个不同的路径,使用 JMXConnectorFactory,它需要协议(protocol)、主机和端口信息,以便客户端可以访问远程 JMX 服务器。

最佳答案

如果您只想访问同一个 JVM 中的 MBeanServer,那么 ManagementFactory.getPlatformMBeanServer(); 是实现它的方法。

JMXConnectorFactory 用于访问远程 MBeanServer(即在不同的 JVM 和/或不同的主机上)。

关于java - 我应该如何访问在同一 VM 中运行的 JMX MBeanServer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4890650/

相关文章:

java - Gradle 包不存在

java - 如何创建由 jmx 公开并通过 jconsole 访问的性能计数器?

java - 缺少 Websphere NodeAgent JMX MBean

security - 保护 JBoss 5.1.0.GA 中的 JMXConnectorServerService (jmx-remoting.sar) 安全

java - Android - 视频文件的缩略图

java - log4j ,,,cxf ,JSF (com.faces) 日志不会写入文件

java - jpanel 中的访问按钮

javascript检测是否在hta中运行

java - 多个 Web 应用程序部署在具有单一访问主页的单独 tomcat 服务器上?

java - 在 EAR 中的多个 war 中共享公共(public) jsp