检查Wildfly Server是否与我的应用程序一起运行?

时间:2016-08-17 16:19:01

标签: jboss server wildfly state

我想知道如何检查我的Wildfly服务器是否正在运行以及WebApp是否已部署?

目前我只检查服务器是否正在运行。

public static boolean checkServerAvailable() {
    try {

        String url = Constants.URL_APP + ":" + Constants.APPSERVER_PORT;

        HttpURLConnection.setFollowRedirects(false);
        // note : you may also need
        // HttpURLConnection.setInstanceFollowRedirects(false)
        HttpURLConnection con = (HttpURLConnection) new URL(url)
                .openConnection();
        con.setRequestMethod("HEAD");

        if (con.getResponseCode() == HttpURLConnection.HTTP_OK) {
            return true;
        }

        else
            return false;

    } catch (Exception e) {
        return false;
    }
}

但我需要知道Wildfly服务器是否也是我的网络应用程序部署的成功。

3 个答案:

答案 0 :(得分:3)

首先,您可以将您的webapp网址添加到您上面创建的网址中。您可以连接到http://localhost:8080/并执行相同操作,而不是连接到http://localhost:8080/yourApp并查找HTTP 200响应。这意味着你在根上下文中有一些东西可以回应。

一个可以说是更好的解决方案就是拥有一个"心跳"或者"状态"您的Web应用程序中的服务。这就像http://localhost:8080/yourApp/status。方法或服务可以返回200意味着服务已启动。但它也可以真正检查您的应用程序是否健康。例如,它可以检查可用内存或确保数据库已启动或其他许多内容。您显示的代码只会使用状态服务的完整URL。

答案 1 :(得分:2)

您可以使用WildFly提供的管理API。此处针对不同版本的WildFly描述了API。

对于WildFly9 - 请参阅https://wildscribe.github.io/Wildfly/9.0.0.Final/deployment/index.html

您可以使用以下URL检查部署状态。您确实需要管理用户进行身份验证。

独立模式:

http://localhost:9990/management/deployment/<deployment_name>

对于域名模式:

http://localhost:9990/management/host/<host_name>/server/<serer_name>/deployment/<deployment_name>

示例JSON响应(假设您部署了包含一些子部署的EAR文件):

{
"content": [{
    "hash": {
        "BYTES_VALUE": "2gH7ddtUxsbzBJEJ/z4T1jYERRU="
    }
}],
"enabled": true,
"enabled-time": 1468861076770,
"enabled-timestamp": "2016-07-18 18:57:56,770 CEST",
"name": "myapplication.ear",
"owner": null,
"persistent": true,
"runtime-name": "myapplication.app.ear",
"subdeployment": {
    "myapplication.impl.jar": null,
    "myapplication.web.war": null
},
"subsystem": null

}

使用curl的示例请求:

curl --digest -D - http://localhost:9990/management --header "Content-Type: application/json" -d '{"operation":"read-resource", "include-runtime":"true", "address":["deployment","myapplication.app.ear"] }' -u user:password

答案 2 :(得分:0)

我在寻找一些东西来检查wildfly是否正在运行,here我看到了:

systemctl status wildfly

而且非常有用:

systemctl stop wildfly
systemctl restart wildfly
systemctl start wildfly