需要对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;
}