2009-05-08 9 views
15

Tôi nhận được lỗi sau thường xuyên trong khi truy xuất đối tượng tệp từ cột cơ sở dữ liệu. Làm thế nào tôi có thể giải quyết vấn đề này?ClientAbortException: java.net.SocketException: Kết nối thiết lập lại bằng peer: lỗi ghi ổ cắm

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

Bạn có thực sự thấy sự cố thực sự không hay bạn có nhận được các thông báo này trong nhật ký không? –

+0

Câu hỏi này là về một ngoại lệ cho một servlet. Đối với câu hỏi tương tự cho khách hàng, hãy xem http://stackoverflow.com/questions/34673336/httpclient-connection-reset-by-peer-socket-write-error – Raedwald

Trả lời

30

Máy khách HTTP của bạn bị ngắt kết nối.

Điều này có thể có một vài lý do:

  • Đáp lại yêu cầu mất quá nhiều thời gian, khách hàng đã từ bỏ
  • Bạn đáp lại bằng một cái gì đó khách hàng không hiểu
  • Sự kết thúc của người dùng thực sự hủy yêu cầu
  • Một lỗi mạng xảy ra
  • ... có lẽ nhiều

Bạn có thể khá dễ dàng bắt chước hành vi:

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, mục có nhiều khả năng nhất trong danh sách của bạn là "Kết thúc- người dùng thực sự đã hủy yêu cầu ". Người dùng đẫm máu, luôn gây ra sự cố :-P – ashirley

7

log của bạn cho biết ClientAbortException, xảy ra khi khách hàng HTTP của bạn giọt kết nối với máy chủ và điều này đã xảy ra trước khi máy chủ có thể đóng kết nối máy chủ socket.

-2

Windows Firewall có thể gây ra ngoại lệ này, hãy cố gắng vô hiệu hóa nó hoặc thêm một quy tắc cho cảng hoặc thậm chí chương trình (java)

+0

Tường lửa của Windows sẽ ngăn chặn hoàn toàn kết nối nếu đó là sự cố. – EJP

+0

"ngăn chặn" theo cách nào? Rõ ràng là bạn sẽ nhận được ngoại lệ (với tâm trí của tôi java.net.SocketException) khi chương trình của bạn sẽ cố gắng mở kết nối, câu hỏi ở đây là thông điệp bạn sẽ thấy ... Trong thực tế, tôi đã khắc phục vấn đề với "Connection reset bởi peer: socket write error "bằng cách giới thiệu quy tắc mới trong tường lửa của cửa sổ. – Yura

+1

@Yura "Ngăn chặn" như không cho phép máy chủ chấp nhận kết nối của khách hàng ngay từ đầu. – ThePyroEagle

0

Tôi đã nhận lỗi này trên trang mở cửa từ Google Cache.

Tôi nghĩ, trang được lưu trong bộ nhớ cache (khách hàng) ngắt kết nối khi tải trang.

Bạn có thể bỏ qua nhật ký lỗi này bằng bộ lọc thử trên bộ lọc.