相关文章推荐
追风的花生  ·  Android使用EditText+List ...·  5 月前    · 
正直的跑步鞋  ·  Qt ...·  1 年前    · 
鼻子大的生姜  ·  Qt -- ...·  1 年前    · 
神勇威武的楼梯  ·  xcode - macOS ...·  1 年前    · 

org.apache.catalina.connector.ClientAbortException: java.io.IOException: 您的主机中的软件中止了一个已建立的连接。

最新推荐文章于 2023-05-08 09:21:35 发布
最新推荐文章于 2023-05-08 09:21:35 发布 12973

org.apache.catalina.connector.ClientAbortException: java.io.IOException: 您的主机中的软件中止了一个已建立的连接。

org.apache.catalina.connector.ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error
	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:410)
	at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:371)
	at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:435)
	at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:423)
	at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:91)
	at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:84)
	at org.apache.commons.io.IOUtils.write(IOUtils.java:631)
	at com.wei.utils.CreateZipAndDownload.CreateZipAndDownload(CreateZipAndDownload.java:68)
	at com.wei.service.impl.ArticleServiceImpl.download(ArticleServiceImpl.java:128)
	at com.wei.web.servlet.ArticleServlet.download(ArticleServlet.java:70)
	at com.wei.web.servlet.ArticleServlet.doGet(ArticleServlet.java:61)
	at com.wei.web.servlet.ArticleServlet.doPost(ArticleServlet.java:180)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at com.wei.web.filter.EncodingFilter.doFilter(EncodingFilter.java:29)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: Software caused connection abort: 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:215)
	at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480)
	at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:366)
	at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:240)
	at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:84)
	at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192)
	at org.apache.coyote.Response.doWrite(Response.java:499)
	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:405)
	... 36 more

org.apache.catalina.connector.ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error

机翻:org.apache.catalina.connector.ClientAbortException:java.net.SocketException:软件导致连接中止:套接字写入错误

Stack Overflow:https://stackoverflow.com/search?q=Software+caused+connection+abort%3A+socket+write+error

https://stackoverflow.com/questions/2126607/official-reasons-for-software-caused-connection-abort-socket-write-error?r=SearchResults

https://docs.microsoft.com/en-us/previous-versions/ms832256(v=msdn.10)?redirectedfrom=MSDN

https://community.oracle.com/thread/1691330

程序运行正常,数据也没有出错,后台却老是报这个错误。在网上找了别人写的博客,这个问题的原因有几个:

①:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;
②:客户关掉了浏览器,而服务器还在给客户端发送数据;
③:浏览器端按了Stop
④:用servlet的outputstream输出流下载图片时,当用户点击取消也会报这个错

花了些功夫最后找出来的原因是:用servlet的response.getOutputStream时,写回多个数据,而客户端没全部接收,可能会报下面这个错误。如:

服务器上写了两条数据

out.writeObject(“1”);

out.writeObject(“2”);

客户端只接收一条
in.readObject(url);

上面摘自:https://www.iteye.com/blog/asdzheng-1921858

2:tomcat超时?

在tomcat中出现这个错误是由于客户端在发送请求后,还没等服务器响应就断开了连接,有可能是因为网络原因,突然网断了,但是如果错误频繁出现的话,可能就是服务端的问题了。

tomcat中配置了一个连接超时时间connectionTimeout,如果在这个时间之后客户端还未得到服务器端的响应的话,就会主动断开连接,这样就会出现上述异常了,tomcat中默认的连接超时时间是20秒,我们一般最好设置为60秒,从而避免后台程序处理时间长导致连接断开。

解决方法:
可以通过设置tomcat下conf文件夹的server.xml文件,对请求连接数和请求超时时间进行设置。

<Connector port="8080" protocol="HTTP/1.1"   
              connectionTimeout="20000"   
              redirectPort="8443" acceptCount="500" maxThreads="400" />  
connectionTimeout以毫秒为单位,默认设置为20秒。通过修改该参数,可以修改tomcat的请求超时时间;

关于修改最大并发请求连接数,需要修改maxThreadsacceptCount两个参数,

其中,maxThreads的介绍如下:

The maximum number of request processing threads to be created by this Connector, which therefore determines the maximum number of simultaneous requests that can be handled. If not specified, this attribute is set to 200. If an executor is associated with this connector, this attribute is ignored as the connector will execute tasks using the executor rather than an internal thread pool.

此连接器要创建的请求处理线程的最大数目,从而确定可以处理的同时请求的最大数目。如果未指定,则此属性设置为200。如果执行器与此连接器关联,则忽略此属性,因为连接器将使用执行器而不是内部线程池执行任务。

acceptCount的介绍为:

The maximum queue length for incoming connection requests when all possible request processing threads are in use. Any requests received when the queue is full will be refused. The default value is 100.

当所有可能的请求处理线程都在使用时,传入连接请求的最大队列长度。当队列已满时收到的任何请求都将被拒绝。默认值为100。

所以两者的默认值分别是200和100,要调整Tomcat的默认最大连接数,可以增加这两个属性的值,并且使acceptCount大于等于maxThreads

摘自::https://blog.csdn.net/persistencegoing/article/details/88850767

3.mysql连接超时?

网上最多的还是mysql的8小时超时,根据他们所说的修改mysql的配置文件加入interactive_timeout=28800000 wait_timeout=28800000,然并卵,没用,依然没有解决问题。后面看到一篇关于spring+c3p0连接池配置的文章修改了自己连接池配置:

<!-- 指定连接池中保留的最大连接数. Default:15-->  
        <property name="maxPoolSize" value="${jdbc.maxPoolSize}"/>  
        <!-- 指定连接池中保留的最小连接数-->  
        <property name="minPoolSize" value="${jdbc.minPoolSize}"/>  
        <!-- 指定连接池的初始化连接数  取值应在minPoolSize 与 maxPoolSize 之间.Default:3-->  
        <property name="initPoolSize" value="${jdbc.initialPoolSize}"/>  
        <!-- 最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。 Default:0-->  
        <property name="maxIdleTime" value="${jdbc.maxIdleTime}"/>  
        <!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数. Default:3-->  
        <property name="acquireIncrement" value="${jdbc.acquireIncrement}"/>
        <!-- 每60秒检查所有连接池中的空闲连接.Default:0 -->  
        <property name="idleConnectionTestPeriod" value="${jdbc.idleConnectionTestPeriod}"/>  
jdbc.maxPoolSize=100
jdbc.minPoolSize=10
jdbc.initPoolSize=20
jdbc.maxIdleTime=120
jdbc.acquireIncrement=6
jdbc.idleConnectionTestPeriod=60

原文链接:https://blog.csdn.net/z842667166/article/details/54943845

查了好多资料,总结如下

This error can occur when the local network system aborts a connection, such as when WinSock closes an established connection after data retransmission fails (receiver never acknowledges data sent on a datastream socket).

当本地网络系统中止连接时,例如当WinSock在数据重新传输失败后关闭已建立的连接时(接收器从不确认在数据流套接字上发送的数据),可能会发生此错误。

Check the following: 1. Ping the remote host you were connected to. If it doesn’t respond, it might be off-line or there might be a network problem along the way. If it does respond, then this problem might have been a transient one (so you can reconnect now), or the server application you were connected to might have terminated (so you might not be able to connect again). 2. Ping a local host to verify that your local network is still functioning (if on a serial connection, see next step). 3. Ping your local router address. If you are on a serial connection, your local router is the IP address of the host you initially logged on to using SLIP or PPP. 4. Ping a host on the same subnet as the host you were connected to (if you know of one). This will verify that the destination network is functioning. 5. Use the tracert command at the command prompt to determine the path to the host you were connected to. This won’t reveal too much unless you know the router addresses at the remote end, but it might help to identify if the problem is somewhere along the way.
检查以下各项:1。Ping连接到的远程主机。如果它不响应,可能是离线的,也可能是一路上的网络问题。如果它确实响应,则此问题可能是暂时的(因此您现在可以重新连接),或者您连接到的服务器应用程序可能已终止(因此您可能无法再次连接)。2。Ping本地主机以验证本地网络是否仍在运行(如果是串行连接,请参阅下一步)。三。Ping本地路由器地址。如果您使用串行连接,则本地路由器是您最初使用SLIP或PPP登录到的主机的IP地址。四。Ping与您连接的主机位于同一子网上的主机(如果您知道其中一个)。这将验证目标网络是否正常工作。5个。在命令提示下使用tracert命令确定连接到的主机的路径。除非您知道远程端的路由器地址,否则这不会透露太多信息,但它可能有助于确定问题是否在某个地方。

https://docs.microsoft.com/en-us/previous-versions/ms832256(v=msdn.10)?redirectedfrom=MSDN

org.apache.catalina.connector.ClientAbortException: java.io.IOException: 您的主机中的软件中止了一个已建立的连接。 问题org.apache.catalina.connector.ClientAbortException: java.io.IOException: 您的主机中的软件中止了一个已建立的连接。org.apache.catalina.connector.ClientAbortException: java.net.SocketException: Software caused connectio...
1、错误描述 [2015-06-15 19:13:48 - ddmlib] 您的主机软件中止一个建立连接java.io.IOException: 您的主机软件中止一个建立连接。 at sun.nio.ch.SocketDispatcher.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(Socket
org.apache.catalina.connector.ClientAbortException: java.io.IOException: 您的主机软件中止一个建立连接。 在tomcat出现这个错误是由于客户端发出请求后,还没等服务器响应就断开连接,有可能是网断了,也有可能是服务端问题 (如调试时间过长导致响应时间超时)。 在Tomcat配置了一个连接超时时间connectionTimout,如果在这个时间之后客户端不还未得到服务器端的响应,就会主动断开连接,产生上述异常,To
org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe问题的排查
解决org.apache.catalina.connector.ClientAbortException: 在做视频拖拽功能的时候会出现 java.io.IOException: 您的主机软件中止一个建立连接 解决方案分为几种: 浏览器端去解决,提高和后端连接的时间; tomcat去做配置; nignx去修改。 java处理办法: @ControllerAdvice @Slf4j public class RestResponseEntityExceptionHandler extends Res
前台报错为: 后台报错为:org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机软件中止一个建立连接。 具体原因是因为设置过CROS跨域请求信息之后,设置浏览器下载弹出框的时候把请求头信息清除掉了, response.reset();把这段代码注释掉就搞定了 具体代码如下 * 设置让浏览器弹出下载对话框的H
org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
这个异常是由于以下几个原因造成。 1、客户端再发起请求后没有等服务器端响应,点击了stop按钮,导致服务器端接收到取消请求(频繁的刷新就会产生此问题)。 2、客户端发送请求连接时间设置过短,后台服务器没有处理完响应,客户端就断开连接,一般这种原因比较容易出现。 3、web服务器,如tomcat在接受用户请求时由于处理能力,如线程、内存、服务器等各个资源限制,超出Tomcat承载范围的请求,就会被tomcat停掉,也可能产生该错误
org.apache.catalina.connector.ClientAbortException: java.io.IOException: 您的主机软件中止一个建立连接。 客户端在发送请求后,还没等服务器响应就断开了连接。 tomcat配置了一个连接超时时间connectionTimeout,如果在这个时间之后客户端还未得到服务器端的响应的话,就会主动断开连接。 tomcat默认的连接超时时间是20秒,可以设置为60秒,从而避免后台程序处理时间长导致连接断开。 解决方案: 找到本地tom
tomcat 有哪几种 Connector 运行模式(优化)? bio:传统的 Java I/O 操作,同步且阻塞 IO。 maxThreads=”150”//Tomcat 使用线程来处理接收的每个请求。这个值表示 Tomcat 可创建的最大的线程数。默认值 200。可以根据机器的时期性能和内存 大小调整,一般可以在 400-500。最大可以在 800 左右。 minSpareThreads=”25”—Tomcat 初始化时创建的线程数。默认值 4。如果 当前没有空闲线程,且没有超过 maxThreads,一次性创建的空闲线程数量。 Tomcat 初始化时创建的线程数量也由此值设置。 maxSpareThreads=”75”–一旦创建的线程超过这个值,Tomcat 就会关闭不 再需要的 socket 线程。默认值 50。一旦创建的线程超过此数值,Tomcat 会关 闭不再需要的线程。线程数可以大致上用 “同时在线人数每秒用户操作次数系 统平均操作时间” 来计算。 acceptCount=”100”—-指定当所有可以使用的处理请求的线程数都被使用 时,可以放到处理队列的请求数,超过这个数的请求将不予处理。默认值 10。如果当前可用线程数为 0,则将请求放入处理队列。这个值限定了请求 队列的大小,超过这个数值的请求将不予处理。 connectionTimeout=”20000” –网络连接超时,默认值 20000,单位:毫 秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒。 nio:JDK1.4 开始支持,同步阻塞或同步非阻塞 IO。 指定使用 NIO 模型来接受 HTTP 请求 protocol=”org.apache.coyote.http11.Http11NioProtocol” 指定使用 NIO 模型 来接受 HTTP 请求。默认是 BlockingIO,配置为 protocol=”HTTP/1.1” acceptorThreadCount=”2” 使用 NIO 模型时接收线程的数目 aio(nio.2):JDK7 开始支持,异步非阻塞 IO。 apr:Tomcat 将以 JNI 的形式调用 Apache HTTP 服务器的核心动态链接库来 处理文件读取或网络传输操作,从而大大地 提高 Tomcat 对静态文件的处理性 maxHttpHeaderSize="8192" http 请求头信息的最大程度,超过此长度的部分 不予处理。一般 8K。 URIEncoding="UTF-8" 指定 Tomcat 容器的 URL 编码格式。 disableUploadTimeout="true" 上传时是否使用超时机制 enableLookups="false"--是否反查域名,默认值为 true。为了提高处理能力, 应设置为 false compression="on" 打开压缩功能 compressionMinSize="10240" 启用压缩的输出内容大小,默认为 2KB noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用 compressableMimeType="text/html,tex
在做 jsp 上传图片时,把 java 代码直接改成 jsp,上传时产生 如下异常: 2012-12-31 8:59:21 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet jsp threw exception java.io.IOException: Stream closed … 百思不得其解,翻出 jsp 转成 servlet 后的代码。如下(很很的醒目一下): 代码如下: … }catch(Exception e){ e.printStackTrace();
org.apache.catalina.connector.clientabortexception一个Tomcat连接的异常,通常发生在一个客户端与Tomcat服务器之间的通信过程。这个异常的主要原因是客户端在请求服务器时断了连接。 然而,在这个异常的后面,它也显示了一个java.io.ioexception: bro,bro是什么含义?在这里,bro是一个缩写,它代表的是“broken pipe”,即管道破裂。这个错误意味着客户端与服务器之间的网络连接已经断。在许多情况下,这可能是由于客户端或服务器端的网络问题引起的,例如断电或网络故障。 对于此问题的解决方案需要确定具体的原因。可以查看服务器日志,尝试重新启动服务器或重新建立连接以解决问题。此外,也可以考虑使用其他的网络通信协议或者更高效的数据传输方式,以提高应用程序的可靠性和性能。
uni.loadFontFace({ family: 'Pacifico', source: 'url("https://sungd.github.io/Pacifico.ttf")' 这个URL失效了,有平替嘛?
tomcat部署 修改域名和访问域名时去掉项目名 CSDN-Ada助手: 非常感谢您对CSDN博客的支持和关注!这篇博客对于想要了解tomcat部署、修改域名和去掉项目名的读者来说一定非常有价值。我们相信你的知识和技能可以为更多读者带来帮助和希望。因此,我们鼓励您写一篇关于tomcat的深度技术博客,从如何在不同的操作系统上正确地部署和配置tomcat开始,到修改域名和访问域名时去掉项目名的实现方法,直到使用JNDI和JDBC连接池来提高tomcat应用程序性能。这样的文章一定会受到广大读者的欢迎,也可以让更多人受益于您的技术分享。期待您的精彩作品! 2023年博客之星「城市赛道」年中评选已开启(https://activity.csdn.net/creatActivity?id=10470&utm_source=blog_comment_city ), 博主的原力值在所在城市已经名列前茅,持续创作就有机会成为所在城市的 TOP1 博主(https://bbs.csdn.net/forums/blogstar2023?typeId=3152981&utm_source=blog_comment_city),更有丰厚奖品等你来拿~。