我在尝试配置服务器以提供远程 JMX 访问时度过了一个痛苦的下午。我发现连接到 JMX 服务器的最简单工具是 jconsole,但在尝试重复访问多个 URL 时,它似乎不是一个好工具。
是否有一种简单的方法(最好是从命令行)来检查特定 URL 是否指向有效的 JMX 服务器?例如
jmxTest service:jmx:rmi://192.168.0.101:1099/jndi/rmi://192.168.0.101:1099/jmxrmi
返回状态 0 表示工作服务器,1 表示非工作服务器
编辑
我尝试了以下方法,但即使 JMX URL 的前半部分指向不存在的 IP,它似乎也能正常工作:
JMXServiceURL url = new JMXServiceURL(urlAsString);
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
mbsc.getDomains();