2017-06-13 5 views
0

Ich versuche, die native Verwaltungs-API von Wildfly 9 zu verwenden, um den Status meiner bereitgestellten Apps anzuzeigen. Die Jboss-cli Ausführung und Ergebnis unter:Angezeigten App-Status mit der nativen API von Java Wildfly 9 anzeigen

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

unter dem Code, ich bin in der Lage zu bestimmen, ob die Anwendungen sind aktiviert, aber nicht, wenn sie in Betrieb sind:

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

Kann mir jemand bei der Übersetzung meiner jboss-cli Befehle in Java helfen? Ich habe auch versucht, mich in das Deployment-Scanner-Subsystem einzuklinken, aber das scheint mich nirgends nützlich zu machen.

Antwort

0

Sie den read-children-resource Betrieb verwenden können, um die Bereitstellungsressourcen zu erhalten.

Etwas wie das Folgende sollte funktionieren.

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()); 
    } 
} 
Verwandte Themen