gpt4 book ai didi

java - 如何检查 Wildfly 8.2.1 是否以编程方式正确部署了我的应用程序?

转载 作者:行者123 更新时间:2023-12-02 04:20:30 25 4
gpt4 key购买 nike

我需要检查由 Wildfly 8.2.1 以编程方式(最好是 java)部署的应用程序的部署状态。就我而言,可以有多种方法来实现这一目标:

  1. 监视部署文件夹中的信号量文件(例如,如果部署了为 war 文件创建的 .deployed 文件)。
  2. 通过调用剩余服务进行检查,该服务在 war 文件成功部署后应该可用
  3. 使用 JMX mbean

可能还有其他方法,我还不知道。但我更感兴趣的是学习使用JMX mbeans的方法。但不幸的是我的在线搜索没有给我任何好的方向。如果有人能阐明这一点,那将非常有帮助。

最佳答案

您可以使用管理操作来检查您的部署是否存在。有点旧了,但是有一个tutorial在 deypted API 上。

try (final ModelControllerClient client = ModelControllerClient.Factory.create(InetAddress.getLocalHost(), 9990)) {
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 ModelNode deployments = Operations.readResult(result);
for (String deploymentName : deployments.keys()) {
final ModelNode deploymentDetails = deployments.get(deploymentName);
// do stuff
}
} else {
throw new RuntimeException("Failed to list deployments: " + Operations.getFailureDescription(result).asString());
}
}

从结果中您可以了解有关部署的各种信息。输出如下:

{
"content" => [{"hash" => bytes {
0x77, 0x1f, 0x1a, 0xa1, 0x9e, 0x46, 0x11, 0x75,
0x2f, 0x58, 0xce, 0x1b, 0x01, 0x29, 0x45, 0x43,
0x16, 0x87, 0x22, 0x9a
}}],
"enabled" => true,
"enabled-time" => 1443485828919L,
"enabled-timestamp" => "2015-09-28 17:17:08,919 PDT",
"name" => "batch-chunk.war",
"owner" => undefined,
"persistent" => true,
"runtime-name" => "batch-chunk.war",
"subdeployment" => undefined,
"subsystem" => {
"jaxrs" => undefined,
"batch" => undefined,
"undertow" => undefined
}
}

如果您想查看它是否已启用,您可以这样做

if (!deploymentDetails.get("enabled")) {
throw new RuntimeException(String.format("Deployment %s is not enabled", deploymentName);
}

关于java - 如何检查 Wildfly 8.2.1 是否以编程方式正确部署了我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32823773/

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