开发者社区> 问答> 正文

redis数据存储失败

 Java exception calling TestRunner caused by java.net.SocketTimeoutException: Read timed out caused by 

展开
收起
226407698450154559 2018-08-14 10:00:23 1276 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    在调用org.apache.commons.httpclient.HttpClient类中的方法executeMethod时,如:

    Java代码 复制代码 收藏代码 HttpClient client = new HttpClient();

    httpGet = new GetMethod(url);

    client.getParams().setIntParameter("http.socket.timeout", 3000);
    HttpClient client = new HttpClient();

    httpGet = new GetMethod(url);

    client.getParams().setIntParameter("http.socket.timeout", 3000); Java代码 复制代码 收藏代码 client.executeMethod(httpGet);
    client.executeMethod(httpGet); 系统可能会出现java.net.SocketTimeoutException: Read timed out 异常,而在浏览器中直接输入url链接时又可以访问,这时候可能是因为httpClient在获取链接时候受到超时限制。这时候只需要将超时限制去掉即可。即将代码client.getParams().setIntParameter("http.socket.timeout", 3000);注释掉或者将其超时限制时间延长

    http://mywork.iteye.com/blog/430754

    这两天项目在测试环境下通过URLConnection 做数据传递时,出现了如下错误 java.net.SocketTimeoutException: Read timed out

    经过查找研究,原因是: 客户端没有在限定的时间内将数据发送给服务器,服务器为了保证服务性能,认定那个连接已经失效,所以出现上述异常。

    由此得出解决方案为: 增大客户端的超时时间。 如 Java代码 复制代码 收藏代码 System.setProperty("sun.net.client.defaultConnectTimeout", String
    .valueOf(10000));// (单位:毫秒)
    System.setProperty("sun.net.client.defaultReadTimeout", String
    .valueOf(10000)); // (单位:毫秒)
    System.setProperty("sun.net.client.defaultConnectTimeout", String .valueOf(10000));// (单位:毫秒) System.setProperty("sun.net.client.defaultReadTimeout", String .valueOf(10000)); // (单位:毫秒)

    2019-09-18 14:20:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ApsaraDB for Redis——与创客同行 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载