繁体   English   中英

帮助java.net.URLConnection超时?

[英]Help with java.net.URLConnection timeout?

Connection正在超时,而开发人员则在其想法列表的底部。

日志友好:

[6/24/10 6:32:34:032 EDT] 0000000d ThreadMonitor W   WSVR0605W: Thread "WebContainer : 136" (0000c53e) has been active for 719542 milliseconds and may be hung.  There is/are 45 thread(s) in total in the server that may be hung.

代码如下:

    try {
        final URLConnection connection = url.openConnection();
        connection.setConnectTimeout(CONNECT_TIME_SECONDS * 1000);
        connection.setReadTimeout(READ_TIME_SECONDS * 1000);
        is = connection.getInputStream();
        document = builder.parse(is);
    } catch (SAXException e) {
        log.error(e);
        throw new PageContentException(e);
    } finally {
        if (is != null) {
            is.close();
        }
    }

我最好的猜测是url.openConnection()试图将连接超时降低到合理水平之前尝试打开连接,但是API没有任何内容显示出我将如何做不同的事情。

关于尝试什么的建议?

我会得到线程转储,看看它确切地卡在了哪里。 不要假设 然后,您可以了解为什么它被卡在那里。 如果您已经有线程转储,请发布堆栈跟踪。

我最好的猜测是url.openConnection()试图在将连接超时降低到合理水平之前尝试打开连接,但是API中没有任何内容显示出我将如何做不同的事情。

我认为这是可能的情况。 IMO,尝试开始连接后设置连接超时不太可能起作用。

关于尝试什么的建议?

您是否尝试过在系统属性中设置“ sun.net.client.defaultConnectTimeout”属性? 它记录在这里

我最好的猜测是url.openConnection()在尝试将连接超时降低到合理水平之前尝试打开连接。

否。如果是这种情况,URLConnection.setConnectionTimeout()将完全没有意义,因为没有比您更早调用它的方法。

可能是因为“最终”。 我不确定您为什么要加入其中,但我认为删除final应该会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM