作者:F_hai丽 | 来源:互联网 | 2023-05-17 21:44
Tomcat上全都是以下这个错,没别的,一报就报了这一堆,这个socketwriteerror能解决吗??或者是怎么能把它输出到日志文件上,由于它的出现,Tomcat挂了好几次了,太影响了!
Tomcat 上全都是以下这个错,没别的,一报就报了这一堆,这个socket write error 能解决吗??或者是怎么能把它输出到日志文件上,由于它的出现,Tomcat 挂了好几次了,太影响了!!!望各位指点!!!
ClientAbortException: java.net.SocketException: Software caused connection abor
t: socket write error
at org.apache.coyote.tomcat5.OutputBuffer.realWriteBytes(OutputBuffer.ja
va:373)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:323)
at org.apache.coyote.tomcat5.OutputBuffer.writeBytes(OutputBuffer.java:4
01)
at org.apache.coyote.tomcat5.OutputBuffer.write(OutputBuffer.java:388)
at org.apache.coyote.tomcat5.CoyoteOutputStream.write(CoyoteOutputStream
.java:76)
at org.apache.catalina.servlets.DefaultServlet.copy(DefaultServlet.java:
1861)
at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServ
let.java:985)
at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java
:448)
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(Appl
icationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
at com.zyht.common.UserFilter.doFilter(UserFilter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
0)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:683)
at java.lang.Thread.run(Thread.java:595)
14 个解决方案
这个异常的原因是,你的页面有一些动态生成的东西,而且相对较大。
你的服务器向客户端发送数据,结果刚发一半,客户端关闭了链接,就造成了这个错误,
一般是类似验证码这样的地方。 总之这个异常是合理的,至于是否引起tomcat挂掉,我不认为是这个原因。
除非你的这部分程序有错误!
这是我的一篇blog
在你的web server的log文件里面, 你有可能会看到一下Exception
(Window NT)
java.io.IOException Connection Reset by Peer
java.io.IOException: ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error at
java.io.EOFException Connection Reset by Peer
(Solaris)
java.io.EOFException: Broken pipe
这些错误消息通常发生在使用servlet的时候,如果客户端发出了一个HTTP 请求然后在浏览器上执行一下集中操作,web server就有可能产生这种错误信息
* 点击停止或者关闭浏览器
* 点击刷新或者用F5命令刷新页面
* 发送一个新的HTTP 请求
当用户进行以上动作的时候,就是对先前进行的HTTP请求的阻断或者终止,web server检测到并且恢复了这个被阻断的HTTP请求,然后在log里面写入IOException。
对,不是那个错引起的tomcat 挂掉,是那个 错误一直不停的报,全输出到tomcat 上了,这就影响到tomcat 了,
问题是,怎么能让那错误不输出到tomcat 上??
try {...} catch (Exception ex) {}
这样可以吗?
应该是客户连接被重置异常,有的时候客户强行中断连接导致的异常,但是这样的异常不至于一天让tomcat挂掉几次
还是再检查一下其他地方吧
应该是客户连接被重置异常,有的时候客户强行中断连接导致的异常,但是这样的异常不至于一天让tomcat挂掉几次
还是再检查一下其他地方吧
急啊 我也报着个错,我在进行solr查询的时候,很容易出现这种情况,让tomcat挂了,
到底怎么解决啊,