Tomcat抛出异常:ClientAbortException: java.net.SocketException: Connection

在做一个小网站的时候,写了一个通过servlet实现文件下载功能的页面。当我点击超级练级,弹出下载对话框,点击保存正常下载,不会出现任何问题,当我我点击取消,服务器端就出现如下提示:

ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:366)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:348)
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:392)
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:381)
at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:88)
at com.lab.servlet.FileDownload.doGet(FileDownload.java:92)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
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.tomcat.util.buf.ByteChunk.append(ByteChunk.java:348)
at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:769)
at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:125)
at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:579)
at org.apache.coyote.Response.doWrite(Response.java:559)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
... 22 more

说明:

网上搜了一下,大致出现问题的原因如下:

1、这个问题一般是客户端在连接还没有完全建立的时候就取消连接,比如用户按了浏览器上面的“停止”按钮,一般来说没有什么问题。但是如果频繁出现,就表示很多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题 可能你的网络连接存在一些问题,你的数据传输的时候,可能由于时间等待的太久,但是server段设置的连接检验时间限制一定,那么就可能出现这种情况的! 
2、ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error的原因是由于处理http连接时,正在输出内容时,用户关闭了IE,会出现一个"ClientAbortException",属于I/O处理中出现的一个异常,应用服务器应该会捕捉。

3、应该是线程被占用的太多了 无法控制了 
我想可能会是:数据库库连接达到极限,.应用服务器 最大线程并发数 达到极限,内存耗尽。

目前没有找到好的解决办法。。。

时间: 2024-11-10 12:20:54

Tomcat抛出异常:ClientAbortException: java.net.SocketException: Connection的相关文章

java.net.SocketException: Connection reset 硬件防火墙也有罪?

今天早上例行进行远程备份,可是我却发现,整个备份过程无法顺利完成. 在备份的过程中不断的抛出异常: java.net.SocketException: Connection reset 奇怪,在之前的一个多月里,每次备份都可以顺利完成,今天却老是抛出这样的错误. 我开始以为是程序的问题,但我检查了十几分钟,没有找到原因. 后来我开始怀疑是不是服务器加了什么防护设置,因为我的备份程序是采用的多线程. 我把问题提交给机房那边,一分钟后,机房工作人员通知我说,已去掉了硬件防火墙,我再试了一下,备份顺利

ClientAbortException: java.net.SocketException: Software caused connection abort: socket write erro

1.错误描述 ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:407) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteCh

高并发下载tomcat下的文件时,发生java.net.SocketException: Connection reset解决方案

(1)问题产生:使用500个线程并发下载tomcat工程中的一个文件时,服务器出现java.net.SocketException: Connection reset异常, 客户端出现connect timeout: (2)分析认为是服务器连接超过最大并发数而重置,导致客户端连接超时: 于是配置tomcat的配置文件,修改最大并发连接数: 在/home/econf/apache-tomcat-6.0.20/conf目录下,修改server.xml在<Connector port="8080

ftp4j揭示java.net.SocketException: Connection reset的解决

ftp4j提示java.net.SocketException: Connection reset的解决系统的自动更新FTP服务器,其他计算机连接都没有问题,包括xp.server2008.win7.win8,简体和繁体. 今天发现一台简体win7无法自动更新,提示错误如下:java.net.SocketException: Connection reset        at java.net.SocketInputStream.read(Unknown Source)        at j

java网络编程的java.net.SocketException: Connection reset异常

一开始学Stream时没注意过write的flush()方法,今天在学网络编程时,注意到了 服务器端: import java.net.*; import java.io.*; public class Client { public static void main(String[] args) throws Exception { Socket socket = new Socket("localhost",8888); BufferedOutputStream out = new

SSLv3协议、TLSv1.2协议配置不对导致javax.ws.rs.ProcessingException: java.net.SocketException: Connection reset

SSl:Secure Sockets Layer 安全套接层 TLS:Transport Layer Security传输层安全 是为网络通信提供安全及数据完整性的一种安全协议.TLS与SSL在传输层对网络连接进行加密.(见百度) 场景描述:将公司请求第三方公司的接口协议由http改成https后,出现了请求套接字异常的情况,第三方公司也收不到具体的请求,具体异常如下, javax.ws.rs.ProcessingException: java.net.SocketException: Conn

tomcat停止失败 java.net.ConnectException: Connection refused

今天遇到个很郁闷的问题,使用catalina.sh stop 或者 shutdown.sh 关闭tomcat总是失败,总提示连接超时. 开始以为是自己tomcat配置的问题,重新部署上没更改过配置的tomcat,结果依然是失败. 后来使用telnet 127.0.0.1 到shutdown的端口 发现失败: tomcat停止的时候将SHUTDOWN指令发送给127.0.0.1:8005端口执行: 问题原来出在自己之前测试的时候把配置有127.0.0.1 IP的lo网卡给禁用了: 启用lo网卡,然

最近纠结致死的一个java报错java.net.SocketException: Connection reset 终于得到解决

Copy from http://www.seotcs.com/blog/796.html 自从SEOTcs系统11月份24日更新了一下SEO得分算法以来,一直困扰我的一个问题出现了,java的数据job任务,在执行过程中会经常报以下的错误: “2011-12-03 18:00:32 DefaultHttpClient [INFO] I/O exception (java.net.SocketException) caught when processing request: Connectio

FtpClient上传文件异常:java.net.SocketException: Connection reset

这问题折磨我快一天了,下午这会儿终于解决了,问题不在程序错误,原因还是出在上传图片的客户端: 贴上异常代码块: 16:38:20.117 INFO  [email protected] - 成功登陆FTP服务器 16:38:20.123 ERROR [email protected] - Connection reset java.net.SocketException: Connection reset     at java.net.SocketInputStream.read(Socket