通过JSON访问JBoss JMX数据

时间:2011-02-24 08:50:41

标签: json jboss jmx

有没有办法通过JSON访问JBoss JMX数据?

我正在尝试使用来自许多不同服务器的数据来管理控制台。我可以使用屏幕抓取来实现这一点,但我更愿意使用JSON对象或XML响应(如果存在),但我无法找到它。

3 个答案:

答案 0 :(得分:3)

您应该查看Jolokia,这是JMX的全功能JSON / HTTP适配器。 它支持并已在JBoss以及许多其他平台上进行过测试。椒 是一个代理,它被部署为正常的Java EE战争,所以你只需将它放入你的 JBoss安装中的deploy目录。此外,还有一些客户端库可用,例如jmx4perl允许以编程方式访问代理。

要发现很多more,并且它正在积极开发。

答案 1 :(得分:0)

如果您使用的是Java,那么您可以创建一个向JBoss服务器发出JMX请求的小程序,并将响应转换为XML / JSON。

以下是小代码段。这可能会对你有帮助。

String strInitialProp = "javax.management.builder.initial";
System.setProperty(strInitialProp, "mx4j.server.MX4JMBeanServerBuilder");
String urlForJMX = "jnp://localhost:1099";//for jboss

ObjectName objAll = ObjectName.getInstance("*:*");  
JMXServiceURL jmxUrl = new JMXServiceURL(urlForJMX);
MBeanServerConnection jmxServerConnection = JMXConnectorFactory.connect(jmxUrl).getMBeanServerConnection();

System.out.println("Total MBeans :: "+jmxServerConnection.getMBeanCount());
Set mBeanSet = jmxServerConnection.queryNames(objAll,null);

答案 2 :(得分:0)

有一些jmx-rest桥可用,它们在内部将JMX与MBean对话,并通过REST调用公开结果(可以将JSON作为数据格式提供)。

参见例如polarrosejmx-rest-access。还有其他几个。