httpclient报错 The host did not accept the connection within timeout of

double9 发布于 2014/08/22 17:23
阅读 5K+
收藏 0



我遇到的这个问题是服务器现网日志中的,不是每次请求都报这个错。是否跟并发有关?

错误堆栈我贴在了下面。

我自己在本地模拟了一些异常情况:

因为是用的httpclient 3.1 ,我在本地自己写了测试类。

网上我查了下,说是设置的setConnectionTimeout()方法,指定连接超时时间。我不知道这个错误怎么出现了的。

我模拟了请求一个不存在的url,他报错是java.net.UnknownHostException: www.gofufu.com

我又模拟了一个存在但不能访问的url,就报我遇到的这个错。比如我访问www.facebook.com

我再模拟一个请求,这个请求在服务端睡眠1分钟,设置setSoTimeout(3000),报Read time out.

谁能解酒我

org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 15000 ms
        at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:155)
        at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:125)
        at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
        at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
        at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
       
 



加载中
0
vidy_tu
vidy_tu
你用IP试试,不用域名。。。
vidy_tu
vidy_tu
回复 @never_say : 客户端出现这个问题,可能是你的负载均衡不那么可靠。。。。
double9
double9
换成一个不存在的IP确实重现了,感谢! 不过,我们的请求地址是双机,没有宕机的记录。这个请求为什么失败呢?
返回顶部
顶部