gpt4 book ai didi

java - 批量运行ModelControllerClient

转载 作者:行者123 更新时间:2023-12-01 09:18:56 27 4
gpt4 key购买 nike

我使用 ModelControllerClient(和 ServerDeploymentManager)通过 Java API 访问 Wildfly CLI。

我想以 CLI 批处理方式运行我的更改,但找不到相应的 API。

简单地执行 new ModelNode().get("operation").set("batch"); 会抛出 WFLYCTL0031: No operation named 'batch' isn'atis at address [].

也许batch命令类似于其他“便捷方法”,例如data-source add等?我将如何执行这些?

最佳答案

没有batch操作,它只是一个 CLI 命令。 ModelControllerClient接受 DMR 操作。 CLI 将命令转换为 DMR 操作。您正在寻找的是复合操作。

org.wildfly.core:wildfly-controller-client中有一个助手依赖性。这是使用 CompositeOperationBuilder 的示例.

import org.jboss.as.controller.client.ModelControllerClient;
import org.jboss.as.controller.client.Operation;
import org.jboss.as.controller.client.helpers.Operations.CompositeOperationBuilder;
import org.jboss.dmr.ModelNode;

public class ExampleOperation {

public ModelNode executeCompositeOperation(final ModelControllerClient client, final ModelNode... ops) throws IOException {
final CompositeOperationBuilder builder = CompositeOperationBuilder.create(true);
for (ModelNode op : ops) {
builder.addStep(op);
}
final ModelNode result = client.execute(builder.build());
if (!Operations.isSuccessfulOutcome(result)) {
throw new RuntimeException(Operations.getFailureDescription(result).asString());
}
return Operations.readResult(result);
}
}

如果您还使用ServerDeploymentManager有一个newish API其中还有更多选项。这就是wildfly-maven-plugin在内部使用,它现在只是一个单独的模块,以便其他人可以使用它。

关于java - 批量运行ModelControllerClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40298824/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com