2011-02-24 3 views
1

Existe-t-il un moyen d'accéder aux données JBoss JMX via JSON? J'essaye de rassembler une console de gestion en utilisant les données d'un certain nombre de serveurs différents. Je peux réaliser ceci en utilisant le grattage d'écran, mais je préférerais utiliser un objet JSON ou une réponse XML s'il en existe un, mais je n'ai pas réussi à en trouver un.Accès aux données JBoss JMX via JSON

Répondre

3

Jetez un coup d'œil à Jolokia, un adaptateur JSON/HTTP complet pour JMX. Il prend en charge et a été testé sur JBoss ainsi que sur de nombreuses autres plates-formes. Jolokia est un agent, qui est déployé comme une guerre Java EE normale, donc vous le déposez simplement dans votre répertoire deploy au sein de votre installation de JBoss. De plus, certaines bibliothèques clientes sont disponibles, par ex. jmx4perl qui permet l'accès par programme à l'agent. Il y a beaucoup de more à découvrir et il est activement développé.

0

Si vous utilisez Java, vous pouvez créer un petit programme qui fera une demande JMX au serveur JBoss et transformera la réponse en XML/JSON.

Voici un petit extrait de code. Cela peut vous aider.

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); 
0

Il y a quelques ponts JMX repos disponibles, qui parlent en interne JMX à MBeans et d'exposer le résultat sur les appels REST (qui peut fournir JSON comme format de données).

Voir par exemple. polarrose ou jmx-rest-access. Il y en a quelques autres là-bas.