从应用程序检查 Wildfly 服务器状态
Check Wildfly server state from application
我的 wildfly standalone 运行 在另一台机器上,我使用它的 IP 在我的应用程序中进行连接。我的目标是确保它是 运行 并根据答案设置客户端状态。为此,我只需通过 ejb 发送一个查询,如果我收到“无法连接到任何服务器”,我将客户端状态设置为脱机。有没有办法做得更好?也许是一个 cli api 来发送检查 war 部署状态的命令?我知道如果我们与 deployment-info --name=App.war
连接,我们可以从机器上的 jboss 客户端检查它。但是我找不到适合我的情况的任何东西。 wildfly-core 的 org.jboss.as.cli.impl 是否涵盖了这样的案例?
您想使用 ModelControllerClient
API 进行查询。您可以阅读部署资源以获取信息。类似于:
try (ModelControllerClient client = ModelControllerClient.Factory.create(address, 9990)) {
final ModelNode address = Operations.createAddress("deployment", "App.war");
final ModelNode op = Operations.createReadResourceOperation(address);
op.get("include-runtime").set(true);
final ModelNode outcome = client.execute(op);
if (Operations.isSuccessfulOutcome(outcome)) {
// do something
} else {
throw new RuntimeException(Operations.getFailureDescription(outcome).asString());
}
}
那应该return 类似于 CLI 命令的信息。
我的 wildfly standalone 运行 在另一台机器上,我使用它的 IP 在我的应用程序中进行连接。我的目标是确保它是 运行 并根据答案设置客户端状态。为此,我只需通过 ejb 发送一个查询,如果我收到“无法连接到任何服务器”,我将客户端状态设置为脱机。有没有办法做得更好?也许是一个 cli api 来发送检查 war 部署状态的命令?我知道如果我们与 deployment-info --name=App.war
连接,我们可以从机器上的 jboss 客户端检查它。但是我找不到适合我的情况的任何东西。 wildfly-core 的 org.jboss.as.cli.impl 是否涵盖了这样的案例?
您想使用 ModelControllerClient
API 进行查询。您可以阅读部署资源以获取信息。类似于:
try (ModelControllerClient client = ModelControllerClient.Factory.create(address, 9990)) {
final ModelNode address = Operations.createAddress("deployment", "App.war");
final ModelNode op = Operations.createReadResourceOperation(address);
op.get("include-runtime").set(true);
final ModelNode outcome = client.execute(op);
if (Operations.isSuccessfulOutcome(outcome)) {
// do something
} else {
throw new RuntimeException(Operations.getFailureDescription(outcome).asString());
}
}
那应该return 类似于 CLI 命令的信息。