gpt4 book ai didi

java - 如何查询 JBoss AS 7 上的现有应用程序?

转载 作者:行者123 更新时间:2023-12-04 05:54:17 24 4
gpt4 key购买 nike

我正在从 Jenkins 构建服务器自动部署到远程 JBoss AS 7.1.1 服务器作为构建管道的一部分,并有一个我从 ant 调用的小 jar 文件(基于 this)。

我的问题是如何确定应用程序是否已安装?如果应用程序已经部署,则执行部署计划将失败(我可以捕获抛出的异常,但这并不好)。

最佳答案

您可以在进行部署之前阅读资源。从那里你可以重新部署它或什么都不做。

这是一个可以在独立服务器上运行的示例。

private boolean exists(final ModelControllerClient client, final String deploymentName) {
final ModelNode op = new ModelNode();
op.get(OP).set("read-children-names");
op.get("child-type").set(ClientConstants.DEPLOYMENT);
final ModelNode result;
try {
result = client.execute(op);
// Check to make sure there is an outcome
if (result.hasDefined(ClientConstants.OUTCOME)) {
if (result.get(ClientConstants.OUTCOME).asString().equals(ClientConstants.SUCCESS)) {
final List<ModelNode> deployments = (result.hasDefined(ClientConstants.RESULT) ? result.get(ClientConstants.RESULT).asList() : Collections.<ModelNode>emptyList());
for (ModelNode n : deployments) {
if (n.asString().equals(deploymentName)) {
return true;
}
}
} else if (result.get(ClientConstants.OUTCOME).asString().equals(ClientConstants.FAILED)) {
throw new IllegalStateException(String.format("A failure occurred when checking existing deployments. Error: %s",
(result.hasDefined(ClientConstants.FAILURE_DESCRIPTION) ? result.get(ClientConstants.FAILURE_DESCRIPTION).asString() : "Unknown")));
}
} else {
throw new IllegalStateException(String.format("An unexpected response was found checking the deployment. Result: %s", result));
}
} catch (IOException e) {
throw new IllegalStateException(String.format("Could not execute operation '%s'", op), e);
}
return false;
}

如果你使用 maven,有一个 maven plugin你也可以用。

关于java - 如何查询 JBoss AS 7 上的现有应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9707545/

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