2017-01-27 4 views
1

Mon application s'exécute sur Wildfly-8.0.1. Actuellement, je suis capable de déclencher des méthodes MBean via JConsole en utilisant le service: jmx: http-remoting-jmx: // localhost: 9990.Tentative de déclenchement des fonctions JMX Mbean à partir de la ligne de commande

Je veux écrire un script pour déclencher ces commandes mais je n'ai pas trouvé d'outil de support pour accomplir cela.

J'ai essayé des outils ci-dessous, mais il semble qu'ils ne soutiennent pas le protocole http-Remoting-JMX ou peut-être je n'utilise pas dans le bon sens 1. JMXTerm 2. Cmdline_JMXClient 3. JManage 4. CJMX

Voici l'erreur de JMXTerm

$> service ouvert: JMX: http-Remoting-JMX: // localhost: 9990 RuntimeIOException: Durée IO exception: protocole non pris en charge: http-Remoting-j mx

toute aide serait grandement appréciée.

Répondre

0

Créez un fichier jar personnalisé en utilisant la classe ci-dessous.

import javax.management.MBeanServerConnection; 
import javax.management.ObjectName; 
import javax.management.remote.JMXConnector; 
import javax.management.remote.JMXConnectorFactory; 
import javax.management.remote.JMXServiceURL; 

public class JMXCli { 

    //private static List<String> operations; 

    private static final String SERVICE_URL = "service:jmx:http-remoting-jmx://"; 

    public static void main(String[] args) throws Exception { 

     JMXServiceURL url = new JMXServiceURL(SERVICE_URL + args[0]); 

     JMXConnector connector = JMXConnectorFactory.connect(url); 

     MBeanServerConnection connection = connector.getMBeanServerConnection(); 

     ObjectName objectName = new ObjectName("com.xyz.com:name=<<Your MBean class name>>"); 

     System.out.println(connection.invoke(objectName, args[1], null, null)); 

    } 
}