使用 Java Wildfly 9 本机管理 API 显示部署的应用程序状态
Displaying deployed app status with Java Wildfly 9 native management API
我正在尝试使用 Wildfly 9 本机管理 API 来显示我部署的应用程序的状态。 jboss-cli 执行和结果如下:
jboss-cli.sh --connect --controller=myserver.com:9990 --commands="/deployment=my-deployment.war :read-attribute(name=status)"
{
"outcome" => "success",
"result" => "OK"
}
使用下面的代码,我能够确定应用程序是否 已启用 ,但如果它们已启动且 运行:
则无法确定
ModelNode op = new ModelNode();
op.get("operation").set("read-children-names");
op.get("child-type").set(ClientConstants.DEPLOYMENT);
任何人都可以协助将我的 jboss-cli 命令翻译成 Java 吗?我也尝试连接到部署扫描器子系统,但这似乎对我没有任何用处。
这个来自类似主题的答案对我们有用(有一些小的调整):
您可以使用read-children-resource
操作获取部署资源。
像下面这样的东西应该可以工作。
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());
}
}
我正在尝试使用 Wildfly 9 本机管理 API 来显示我部署的应用程序的状态。 jboss-cli 执行和结果如下:
jboss-cli.sh --connect --controller=myserver.com:9990 --commands="/deployment=my-deployment.war :read-attribute(name=status)"
{
"outcome" => "success",
"result" => "OK"
}
使用下面的代码,我能够确定应用程序是否 已启用 ,但如果它们已启动且 运行:
则无法确定ModelNode op = new ModelNode();
op.get("operation").set("read-children-names");
op.get("child-type").set(ClientConstants.DEPLOYMENT);
任何人都可以协助将我的 jboss-cli 命令翻译成 Java 吗?我也尝试连接到部署扫描器子系统,但这似乎对我没有任何用处。
这个来自类似主题的答案对我们有用(有一些小的调整):
您可以使用read-children-resource
操作获取部署资源。
像下面这样的东西应该可以工作。
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());
}
}