Доступ к данным JBoss JMX через JSON - PullRequest
1 голос
/ 24 февраля 2011

Есть ли способ получить доступ к данным JBoss JMX через JSON?

Я пытаюсь собрать консоль управления, используя данные с разных серверов. Я могу добиться этого, используя скриншот, но я бы предпочел использовать объект JSON или XML-ответ, если он существует, но я не смог его найти.

Ответы [ 3 ]

3 голосов
/ 25 февраля 2011

Вы должны взглянуть на Jolokia , полнофункциональный адаптер JSON / HTTP для JMX. Он поддерживает и был протестирован на JBoss, а также на многих других платформах. Jolokia агент, который развернут как обычная война Java EE, так что вы просто помещаете его в свой deploy каталог внутри вашей установки JBoss. Также доступно несколько клиентских библиотек, например, jmx4perl , который обеспечивает программный доступ к агенту.

Существует много больше , которые можно обнаружить, и они активно развиваются.

0 голосов
/ 24 февраля 2011

Существует несколько доступных мостов jmx-rest, которые внутренне связывают JMX с MBeans и предоставляют результат через вызовы REST (которые могут доставлять JSON как формат данных).

Смотри, например, polarrose или jmx-rest-access . Там есть еще несколько человек.

0 голосов
/ 24 февраля 2011

Если вы используете Java, вы можете создать небольшую программу, которая отправит JMX-запрос на сервер JBoss и преобразует ответ в 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);
...