读书人

socket write error 把Tomcat 搞挂了好

发布时间: 2012-01-31 21:28:41 作者: rapoo

socket write error 把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)

[解决办法]
这个异常的原因是,你的页面有一些动态生成的东西,而且相对较大。
你的服务器向客户端发送数据,结果刚发一半,客户端关闭了链接,就造成了这个错误,

一般是类似验证码这样的地方。 总之这个异常是合理的,至于是否引起tomcat挂掉,我不认为是这个原因。

除非你的这部分程序有错误!
[解决办法]
建议重装一下TOMCAT。看看还出不出这个
[解决办法]

探讨
这个异常的原因是,你的页面有一些动态生成的东西,而且相对较大。
你的服务器向客户端发送数据,结果刚发一半,客户端关闭了链接,就造成了这个错误,
一般是类似验证码这样的地方。 总之这个异常是合理的,至于是否引起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挂掉,我不认为是这个原因。
除非你的这部分程序有错误!

[解决办法]
等待中.....
[解决办法]
try {...} catch (Exception ex) {}
这样可以吗?
[解决办法]
应该是客户连接被重置异常,有的时候客户强行中断连接导致的异常,但是这样的异常不至于一天让tomcat挂掉几次

还是再检查一下其他地方吧

[解决办法]
应该是客户连接被重置异常,有的时候客户强行中断连接导致的异常,但是这样的异常不至于一天让tomcat挂掉几次

还是再检查一下其他地方吧

读书人网 >Java Web开发

热点推荐