88

次のエラーが正確に何を意味するのかについて、適切な答えを見つけることができませんでした。

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();
4

10 に答える 10

30

これは通常、TCP タイムアウトなどのネットワーク エラーが発生したことを意味します。まず、接続にスニファー (wireshark) を配置して、問題がないかどうかを確認します。TCP エラーがある場合は、それを確認できるはずです。また、該当する場合は、ルーターのログを確認できます。ワイヤレスがどこかに関係している場合、それがこの種のエラーの別の原因です。

于 2008-09-25T20:50:21.617 に答える
29

これは、クライアント認証を要求するように構成されたサーバーによって TLS クライアントが認証されない場合にも発生します。

于 2014-04-22T12:53:03.160 に答える
4

http データにアクセスしていますか? 標準ライブラリの代わりに HttpClient ライブラリを使用できますか? ライブラリにはより多くのオプションがあり、より適切なエラー メッセージが表示されます。

http://hc.apache.org/httpclient-3.x/

于 2008-09-25T20:49:26.360 に答える
4

このようなことが起こるのを見たのは、接続が悪いとき、または別のスレッド コンテキストから使用しているソケットを誰かが閉じているときだけです。

于 2008-09-25T20:49:56.063 に答える
2

jdbc 接続文字列に「autoReconnect=true」を追加してみてください

于 2011-12-28T06:54:00.053 に答える
1

これは、接続がタイムアウトしたとき、またはリモート ホストが接続を終了したとき (アプリケーションの終了、コンピューターのシャットダウンなど) に時々発生します。これを回避するには、自分でソケットを管理し、通信プロトコルを介してアプリケーションで切断を処理してから、 と を呼び出しshutdownInputshutdownOutputセッションをクリアします。

于 2012-04-20T12:32:40.320 に答える
1

http ポートで別のサービスまたはプログラムが実行されているかどうかを確認します。ポートを使用しようとしたときに、別のプログラムによって使用されたときに起こりました。

于 2012-08-24T14:59:30.713 に答える
0

Netbeans を使用して Tomcat を管理している場合は、[ツール] - [サーバー] で HTTP モニターを無効にしてみてください。

于 2013-11-11T11:15:18.150 に答える