2017-06-13 3 views
0

J'essaie d'utiliser l'API de gestion native de Wildfly 9 pour afficher l'état de mes applications déployées. L'exécution jboss-cli et le résultat est ci-dessous:Affichage de l'état de l'application déployée avec l'API de gestion native Java Wildfly 9

jboss-cli.sh --connect --controller=myserver.com:9990 --commands="/deployment=my-deployment.war :read-attribute(name=status)" 
{ 
    "outcome" => "success", 
    "result" => "OK" 
} 

En utilisant le code ci-dessous, je suis en mesure de déterminer si les applications sont activées, mais pas si elles sont en fonctionnement:

ModelNode op = new ModelNode(); 
op.get("operation").set("read-children-names"); 
op.get("child-type").set(ClientConstants.DEPLOYMENT); 

Quelqu'un peut-il aider à traduire mes commandes jboss-cli en Java? J'ai également essayé de m'intégrer au sous-système du scanner de déploiement, mais cela ne me semble pas utile.

Répondre

0

Vous pouvez utiliser l'opération read-children-resource pour obtenir les ressources de déploiement.

Quelque chose comme ce qui suit devrait fonctionner.

try (final ModelControllerClient client = ModelControllerClient.Factory.create(InetAddress.getLocalHost(), 9990)) { 
    ServerHelper.waitForStandalone(client, 20L); 
    final ModelNode op = Operations.createOperation("read-children-resources"); 
    op.get(ClientConstants.CHILD_TYPE).set(ClientConstants.DEPLOYMENT); 
    final ModelNode result = client.execute(op); 
    if (Operations.isSuccessfulOutcome(result)) { 
     final List<Property> deployments = Operations.readResult(result).asPropertyList(); 
     for (Property deployment : deployments) { 
      System.out.printf("Deployment %-20s enabled? %s%n", deployment.getName(), deployment.getValue().get("enabled")); 
     } 
    } else { 
     throw new RuntimeException(Operations.getFailureDescription(result).asString()); 
    } 
}