2009-05-08 21 views
15

データベースオブジェクトからファイルオブジェクトを取得中に次のエラーが頻繁に発生します。どうすればこの問題を解決できますか?ClientAbortException:java.net.SocketException:ピアによって接続がリセットされました:ソケット書き込みエラー

May 8, 2009 3:18:14 PM org.apache.catalina.core.StandardHostValve status 
    WARNING: Exception Processing ErrorPage[errorCode=404, location=/error.jsp] 
    ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error 
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:327) 
    at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293) 
    at org.apache.catalina.connector.Response.flushBuffer(Response.java:537) 
    at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:286) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) 
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) 
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)   
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) 
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) 
    at java.lang.Thread.run(Unknown Source) 

Caused by: java.net.SocketException: Connection reset by peer: socket write error 
    at java.net.SocketOutputStream.socketWrite0(Native Method) 
    at java.net.SocketOutputStream.socketWrite(Unknown Source) 
    at java.net.SocketOutputStream.write(Unknown Source) 
    at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:746) 
    at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433) 
    at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:304) 
    at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:991) 
    at org.apache.coyote.Response.action(Response.java:182) 
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:322) 
    ... 13 more 
+1

実際に実際の問題が発生していますか、ログにこれらのメッセージが表示されますか。 –

+0

この質問は、サーブレットの例外に関するものです。クライアントに関する同様の質問については、http://stackoverflow.com/questions/34673336/httpclient-connection-reset-by-peer-socket-write-error – Raedwald

答えて

30

HTTPクライアントが接続されていません。

これが理由のカップルを持っている可能性があり:リクエストに応え

  • は時間がかかりすぎた、クライアントは、クライアントが実際に
  • エンドユーザーを理解していなかった何かで応答
  • をあきらめましたネットワークエラーが
  • を...おそらくより発生した
  • 要求にキャンセル

あなたはかなり簡単に動作をエミュレートすることができます

URL url = new URL("http://example.com/path/to/the/file"); 

int numberOfBytesToRead = 200; 

byte[] buffer = new byte[numberOfBytesToRead]; 
int numberOfBytesRead = url.openStream().read(buffer); 
+6

IMOを参照してください。あなたのリストから最も可能性の高い項目は、ユーザーが実際にリクエストをキャンセルしました。 "血まみれのユーザーは、いつもトラブルを引き起こします.-P – ashirley

7

あなたのログは、あなたのHTTPクライアントがサーバーとの接続をドロップし、これは、サーバーの前に起こったときに発生ClientAbortExceptionは、サーバソケット接続を閉じたことを示し。

-2

は、Windowsファイアウォールがこの例外を引き起こす可能性があり、それを無効にするか、またはポート、あるいはプログラム(javaの)私はGoogleのキャッシュから開いているページ上でこのエラーを持っている

+0

Windowsファイアウォールは、問題があれば完全に接続を防ぎました。 – EJP

+0

どのように「防止する」?あなたのプログラムが接続を開こうとするときにあなたが例外を(私の心にjava.net.SocketExceptionに)渡すことは明らかです。質問はここに表示されるメッセージです...実際には私は "Connection reset Windowsファイアウォールに新しいルールを導入することによって、ピアによって:ソケット書き込みエラーが発生しました。 – Yura

+1

@Yura "Prevent"は、サーバーが最初にクライアントの接続を受け入れないようにします。 – ThePyroEagle

0

のためのルールを追加してみてください。

私は、キャッシュされたページ(クライアント)がページの読み込みでを切断していると思います。

フィルタでtry-catchを使用してこのエラーログを無視することができます。

関連する問題