代替:
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 CLIクライアントlibには、そのためのいくつかのAPIが含まれているように、今それを見つけることができません。
これはクエリ解析の基本的な実装です(ネストされた値はサポートされず、エスケープなどは気にしません)。
/**
* 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()
いいえ、ただのantです。明日それを試していただきありがとうございます。この種のドキュメントはどこにありますか? – blank
@BedwyrHumphreysほとんどはhttps://docs.jboss.org/author/display/AS71/Management+API+referenceです。あなたはちょうど構造を探索しなければならない他のもの。 $ JBOSS_HOME/bin/jboss-cli.shを実行すると、概要を見ることができます。--connect "/:read-resource" >> output.txt –
ポイントのカップル - 私はop.get(OP)が動作するはずです。 get(ClientConstants.OP)とClientConstants.FAILEDはorg.jboss.as.controller.client.helpers.ClientConstantsに存在しないようです。 – blank