代码之家  ›  专栏  ›  技术社区  ›  Dean J

有关java.net.urlConnection超时的帮助?

  •  0
  • Dean J  · 技术社区  · 15 年前

    一个连接正在超时,而它上的开发人员在他的想法列表的底部。

    这些原木很友好:

    [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.open connection()正在试图打开连接 之前 连接超时被降低到合理的程度,但是 nothing API 向我展示了我是如何做到这一点的。

    关于尝试什么的建议?

    4 回复  |  直到 15 年前
        1
  •  2
  •   unbeli    15 年前

    我去弄个线头,看看在哪儿。 确切地 卡住了。不要以为。然后你就可以看到为什么它卡在那里了。如果已经有线程转储,请发布堆栈跟踪。

        2
  •  1
  •   Stephen C    15 年前

    我的最佳猜测是url.open connection()试图在连接超时降低到合理值之前打开连接,但API中没有任何内容向我展示我如何以不同的方式进行连接。

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

    关于尝试什么的建议?

    您是否尝试在系统属性中设置“sun.net.client.defaultConnectTimeout”属性?记录在案 here .

        3
  •  0
  •   user207421    15 年前

    我的最佳猜测是 url.openConnection()正在尝试 连接前打开连接 超时被降低到某个值 合理。

    不。如果是这种情况,那么urlConnection.setConnectionTimeout()将完全没有意义,因为没有办法比您更早地调用它。

        4
  •  -3
  •   Anatoli    15 年前

    it maybe because of "final". 我不知道你为什么要参加决赛,但我认为取消决赛应该有帮助。

    推荐文章