HttpURLConnection CLOSE_WAIT,如果响应不正确

时间:2018-11-22 13:53:45

标签: java http tomcat httpurlconnection keep-alive

我在这里看到的几个答案中,为了重用连接,我需要关闭inputstream和outputstream。 在关闭流之前,我看到太多的CLOSE_WAIT连接。 但是现在,在基本响应的情况下(例如找不到404文件) 我正在以这种方式处理响应

public static void handleIOError(URLConnection conn)
{
    InputStream es = null;
    HttpURLConnection urlConn = null;

    if (conn instanceof HttpURLConnection)
    {
        urlConn = (HttpURLConnection)conn;
        es = urlConn.getErrorStream();

    }

    if (es != null)
    {
        try
        {
            while (es.read() > -1) {}
        }
        catch (IOException e)
        {
            logger.error("Unable to close input stream", e);
        }
        finally
        {
            IOUtils.closeQuietly(es);
        }
    }
}

所以我要关闭输入流,但是仍然有多个CLOSE_WAIT连接。我猜我没有关闭套接字流,但是哪一个呢?如您所知,如果发生错误,我将无法urlConn.getInputStream()

我的服务器是tomcat 8。

任何想法如何解决套接字泄漏?

0 个答案:

没有答案