对java.io.IOException进行故障排除:服务器返回了HTTP响应代码:503

时间:2019-04-05 08:24:48

标签: java httpurlconnection http-status-code-503

需要对java.io.IOException进行故障排除的帮助:服务器返回了HTTP响应代码:503

部署在JBoss EAP 6.3上的Web应用程序(客户端应用程序)创建一个HttpURLConnection,该URL与部署在GlassFish服务器上的另一个应用程序(服务器应用程序)相关。这两个服务器之间放置了防火墙。客户端应用程序突然开始抛出java.io.IOException:成功运行了将近一两天后,服务器针对所有请求返回了HTTP响应代码:503。

1。)按照GlassFish服务器管理员的要求,不会再有其他请求到达服务器进行处理。虽然,我询问了HTTP访问日志,但不确定GlassFish是否在访问日志中记录了503响应。 2.)防火墙日志表明这两个服务器之间没有阻塞的流量。 3.)网络管理员建议Wireshark无法捕获任何发出503响应的出站流量。

我的查询是:

每个已创建的连接都使用connection.disconnect()方法,并且创建连接的频率很高。很少有链接建议disconnect()方法不允许同一TCP套接字被其他请求重用,在这种情况下,每次都会创建一个新的套接字。因此最好关闭InputStream。底层Windows操作系统无法动态分配端口,从而导致HTTP响应503?

    try {
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

        connection.setRequestMethod("GET");
        connection.setRequestProperty("Content-Type", "application/json");
        connection.setDoOutput(true);


        if (connection.getResponseCode()!= 200) {
            serviceStatus = code;
            serviceMsg = "Error occurred while getting data";
        }

        BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String outStr = "";
        while ((outStr = br.readLine()) != null) {
            System.out.println("OutS " + outStr);
            sessionKey += outStr;
        }
        connection.disconnect();

    } catch (Exception ex) {
        serviceStatus = -1;
        serviceMsg = "Error: " + ex.getMessage();
        ex.printStackTrace();
    }
    return sessionKey;
}

0 个答案:

没有答案