2009-05-08 9 views
15

Ich bekomme den folgenden Fehler häufig beim Abrufen von Dateiobjekt aus der Datenbankspalte. Wie kann ich dieses Problem lösen?ClientAbortException: java.net.SocketException: Verbindung zurückgesetzt von Peer: Socket-Schreibfehler

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

Sehen Sie tatsächlich ein tatsächliches Problem, oder erhalten Sie diese Nachrichten nur in Ihrer Protokollierung? –

+0

Diese Frage bezieht sich auf eine Ausnahme für ein Servlet. Für eine ähnliche Frage für einen Kunden siehe http://stackoverflow.com/questions/34673336/httpclient-connection-reset-by-peer-socket-write-error – Raedwald

Antwort

30

Ihr HTTP-Client getrennt.

Dies ein paar Gründe haben könnte:

  • Als Reaktion auf die Anfrage zu lange gedauert hat, der Kunde tatsächlich gab
  • Sie reagierte mit etwas der Kunde nicht verstand
  • Der Endbenutzer die Anforderung abgebrochen
  • ein Netzwerkfehler
  • aufgetreten ... wahrscheinlich mehr

Sie können ziemlich emulieren leicht das Verhalten:

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, der wahrscheinlichste Artikel aus Ihrer Liste ist "The end- Benutzer hat die Anfrage tatsächlich abgebrochen ". Bloody Benutzer, die immer Probleme verursachen: -P – ashirley

7

Ihr Protokoll gibt ClientAbortException, die bei Client-HTTP auftritt, um die Verbindung mit dem Server fallen, und dies geschah, bevor Server die Server-Socket-Verbindung schließen konnte.

-2

Windows-Firewall könnte diese Ausnahme verursachen, versuchen Sie es zu deaktivieren oder eine Regel für Port oder sogar Programm (Java)

+0

Windows-Firewall hätte die Verbindung vollständig verhindert, wenn das das Problem war. – EJP

+0

"verhindern" in welcher Weise? Es ist offensichtlich, dass Sie eine Ausnahme erhalten werden (meiner Meinung nach java.net.SocketException), wenn Ihr Programm versucht, die Verbindung zu öffnen, die Frage ist hier, was die Nachricht Sie sehen werden ... In der Tat habe ich die mit "Connection Reset per Peer: socket write error "durch Einführung einer neuen Regel in einer Windows Firewall. – Yura

+1

@Yura "Prevent" wie in nicht lassen Sie den Server die Verbindung des Clients an erster Stelle akzeptieren. – ThePyroEagle

0

Ich habe diesen Fehler auf offene Seite von Google Cache bekam hinzufügen.

Ich denke, zwischengespeicherte Seite (Client) Trennen auf Seite geladen.

Sie können dieses Fehlerprotokoll mit try-catch on filter ignorieren.

Verwandte Themen