如何解决java.net.SocketTimeoutException: Read timed out这个问题?

hlf 2012-03-01 02:59:52
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException{
ByteArrayOutputStream out = null;
String result = null;
try{
InputStream in = request.getInputStream();
out = new ByteArrayOutputStream();

byte[] buffer = new byte[4096];
int len;
while ((len=in.read(buffer, 0, buffer.length))>-1){ 这句报错!!!
try {
out.write(buffer, 0, len);
} catch (Exception e) {
}
}
out.flush();

result = new String(out.toByteArray(),"utf-8");
}catch(Exception Ex){
//logger.error("",e);
}finally{
if (out!=null) out.close();
if (in!=null) in.close();
}

执行到上面那行代码时,报以下错误:
java.net.SocketTimeoutException: Read timed out

而我在本机测试了N次都没出现,放到生产环境后就偶尔会出现。并且我在生产环境上测试时也没出现,咋搞?
...全文
8992 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
化石 2013-05-11
  • 打赏
  • 举报
回复
兄弟,这个问题是怎么解决的啊!我也出现这个问题了,求帮助啊! 求回复啊
化石 2013-05-11
  • 打赏
  • 举报
回复
兄弟,这个问题是怎么解决的啊!我也出现这个问题了,求帮助啊!
hlf 2012-03-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lixinreal 的回复:]
1、来考虑下网络情况
2、生产环境与开发环境的配置是否不同等等
[/Quote]

这两点都排除了
zhwh 2012-03-06
  • 打赏
  • 举报
回复
你的客户端代码可能有问题。
lixinreal 2012-03-05
  • 打赏
  • 举报
回复
1、来考虑下网络情况
2、生产环境与开发环境的配置是否不同等等
hlf 2012-03-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zyz1985 的回复:]
修改成"while ((len=in.read(buffer))>0){ "
这个还不可以????
[/Quote]
是啊,还是一样报错呀
游一游走一走 2012-03-02
  • 打赏
  • 举报
回复
修改成"while ((len=in.read(buffer))>0){ "
这个还不可以????
hlf 2012-03-02
  • 打赏
  • 举报
回复
昨天到现在还是不断的报相同的错,怎么解决呢?
hlf 2012-03-01
  • 打赏
  • 举报
回复
这个代码我也是从网上找到的样例,本人是菜鸟,也没研究就直接用了

要判断是 >0 呀?那我试试
jumpheightway 2012-03-01
  • 打赏
  • 举报
回复
while ((len=in.read(buffer))>0){
jumpheightway 2012-03-01
  • 打赏
  • 举报
回复
while ((len=in.read(buffer, 0, buffer.length))>-1)
你这又是何必呢
反正都是读满为止
while ((len=in.read(buffer))>-1){

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧