java.net.SocketException: Software caused connection abort: recv failed 如何解决?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (200)

我一直无法找到适当的答案,以确定以下错误意味着什么:

java.net.SocketException: Software caused connection abort: recv failed

笔记:

  • 这个错误是偶发和不可预测的; 尽管得到这个错误意味着所有未来的URI请求也会失败。
  • 唯一有效的解决方案是(也只是偶尔)重启Tomcat和/或实际的机器(在这种情况下是Windows)。
  • 该URI绝对可用(通过要求浏览器执行提取来确认)。

相关代码:

BufferedReader reader;
try { 
 URL url = new URL(URI);
 reader = new BufferedReader(new InputStreamReader(url.openStream())));
} catch( MalformedURLException e ) { 
 throw new IOException("Expecting a well-formed URL: " + e); 
}//end try: Have a stream

String buffer;
StringBuilder result = new StringBuilder();
while( null != (buffer = reader.readLine()) ) { 
 result.append(buffer); 
}//end while: Got the contents.
reader.close();
提问于
用户回答回答于

这通常意味着存在网络错误,例如TCP超时。我将首先在连接上放置一个嗅探器(wireshark),以查看是否可以看到任何问题。如果出现TCP错误,您应该可以看到它。另外,如果这适用,您可以检查您的路由器日志。如果无线涉及到任何地方,那么这就是这类错误的另一个来源。

用户回答回答于

如果您的TLS客户端无法通过配置为需要客户端身份验证的服务器进行身份验证,也会发生这种情况。

扫码关注云+社区

领取腾讯云代金券