有没有办法通过JSON访问JBoss JMX数据?
我正在尝试使用来自许多不同服务器的数据来管理控制台。我可以使用屏幕抓取来实现这一点,但我更愿意使用JSON对象或XML响应(如果存在),但我无法找到它。
答案 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作为数据格式提供)。
参见例如polarrose或jmx-rest-access。还有其他几个。