Une alternative:
ModelNode res = AS7CliUtils.executeRequest("/deployment=* /:read-resource", ctx.getAS7Client());
{
"outcome" => "success",
"result" => [{
"address" => [("deployment" => "jboss-as-wicket-ear-ear.ear")],
"outcome" => "success",
"result" => {
"content" => [{"hash" => bytes { ... }}],
"enabled" => true,
"name" => "jboss-as-wicket-ear-ear.ear",
"persistent" => true,
"runtime-name" => "jboss-as-wicket-ear-ear.ear",
"subdeployment" => {
"jboss-as-wicket-ear-ejb.jar" => undefined,
"jboss-as-wicket-ear-war.war" => undefined
},
"subsystem" => {"datasources" => undefined}
}
}]
}
JBoss AS lib client CLI contient une API pour cela, ne peut pas le trouver en ce moment.
Ceci est une implémentation primitive de l'analyse des requêtes (ne prend pas en charge les valeurs imbriquées et ne se soucie pas de l'échappement, etc.).
/**
* Parse CLI command into a ModelNode - /foo=a/bar=b/:operation(param=value,...) .
*
* TODO: Support nested params.
*/
public static ModelNode parseCommand(String command) {
return parseCommand(command, true);
}
public static ModelNode parseCommand(String command, boolean needOp) {
String[] parts = StringUtils.split(command, ':');
if(needOp && parts.length < 2) throw new IllegalArgumentException("Missing CLI command operation: " + command);
String addr = parts[0];
ModelNode query = new ModelNode();
// Addr
String[] partsAddr = StringUtils.split(addr, '/');
for(String segment : partsAddr) {
String[] partsSegment = StringUtils.split(segment, "=", 2);
if(partsSegment.length != 2) throw new IllegalArgumentException("Wrong addr segment format - need '=': " + command);
query.get(ClientConstants.OP_ADDR).add(partsSegment[0], partsSegment[1]);
}
// No op?
if(parts.length < 2) return query;
// Op
String[] partsOp = StringUtils.split(parts[1], '(');
String opName = partsOp[0];
query.get(ClientConstants.OP).set(opName);
// Op args
if(partsOp.length > 1){
String args = StringUtils.removeEnd(partsOp[1], ")");
for(String arg : args.split(",")) {
String[] partsArg = arg.split("=", 2);
query.get(partsArg[0]).set(unquote(partsArg[1]));
}
}
return query;
}// parseCommand()
Pas de maven, juste ant. Merci pour cela, j'essaierai demain. Où est la documentation pour ce genre de chose? – blank
@BedwyrHumphreys La plus grande partie est ici https://docs.jboss.org/author/display/AS71/Management+API+reference. D'autres que vous avez juste besoin d'explorer la structure. Vous pouvez voir un aperçu si vous exécutez $ JBOSS_HOME/bin/jboss-cli.sh --connect "/: read-resource" >> output.txt –
Quelques points - Je pense que op.get (OP) devrait être op. get (ClientConstants.OP) et ClientConstants.FAILED ne semble pas exister dans org.jboss.as.controller.client.helpers.ClientConstants – blank