教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
  网站导航: 库库中文网 · 系统编程教程 · Java语言 · Java Blog精粹  

被SocketException折磨了三天

教程推荐
『被SocketException折磨了三天』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2006-6-26 

最近开发一网站,在本地测试通过后放到购买的空间上,运行不到二天。空间的客服就和我说,我们的网站有问题,老是报错,并且停止了网站的运行。其报错内容如下:

警告: Exception Processing ErrorPage[errorCode=404, location=/404.jsp]
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:403)
     at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:311)
     at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)
     at org.apache.catalina.connector.Response.flushBuffer(Response.java:544)
     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:868)
     at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
     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(Thread.java:595)
Caused by: java.net.SocketException: Connection reset by peer: socket write error
     at java.net.SocketOutputStream.socketWrite0(Native Method)
     at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
     at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
     at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:747)
     at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:403)
     at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:323)
     at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:770)
     at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:125)
     at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:580)
     at org.apache.coyote.Response.doWrite(Response.java:555)
     at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
     ... 15 more
2006-6-22 15:39:29 org.apache.catalina.core.StandardHostValve status
警告: Exception Processing ErrorPage[errorCode=404, location=/404.jsp]
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:403)
     at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:311)
     at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)
     at org.apache.catalina.connector.Response.flushBuffer(Response.java:544)
     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:868)
     at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
     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(Thread.java:595)
Caused by: java.net.SocketException: Connection reset by peer: socket write error
     at java.net.SocketOutputStream.socketWrite0(Native Method)
     at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
     at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
     at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:747)
     at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:403)
     at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:323)
     at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:770)
     at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:125)
     at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:580)
     at org.apache.coyote.Response.doWrite(Response.java:555)
     at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
     ... 15 more

以前也曾经遇到过ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error的问题,但是造成这个错误的各种原因不一样。

第一步,为了找出出错的原因,我在几台机器上测试,结果,终于在有一台机器上运行会出现那样的问题。

第二步,为了找出真正出错的代码,我将所有在jsp页面用到的处理数据代码删掉,结果运行正常,不再报那个错,这个说明问题应该在jsp页面。

第三步,由于我在jsp页面中直接用一个类通过spring和hibernate查询得到结果,没有用到struts.因此,我修改代码,将所有查询放到一个action里面,然后再用request.setAttribute()保存查询结果。再jsp页面直接用request.getAttribute取得结果。这样,再次运行,第一次页面显示正常,并且后台也不报错。于是我认为,问题已经解决。

但是,运行几次以后,打开几个新的同一个页面后,后台又开始报同样的错误了,晕~~~~

第四步, 为了确定问题的根源在哪里,我修改了VO,添加了implements Serializable,实现了Serializable接口。结果运行,这次是第一次运行后台就报错

第五步,我打开所有调试信息,结果发现每次action执行结束后,我都会用decorator,就是用装时器装饰一下页面,于是开始想,会不会是action执行结束后,再运行 "装饰器" 的那个过滤程序,结果造成session过期,从而导致那个问题。于是尝试不用装饰器去装饰那个页面。第一次运行正常。为了测试是否问题真正解决,我新开了10个ie窗口,在各个页面轮流刷新页面,在刷新了 100 多下后,发现后台还没有报错,初步确定问题已经解决!

但是,造成这个问题的内在原因还是不清楚!



】【关闭窗口
  上一页:
  下一页:
 ·网站导航: 库库中文网 · 系统编程教程 · Java语言 · Java Blog精粹
Java Blog精粹:相关文章
Java Blog精粹点击榜
推荐教程JAVA Lucene in Action教程完整
普通教程Log4j运用参考(综合整理)
普通教程JSP验证码getOutputStream异常地
普通教程编码讨论---乱码疑难之终极处理
普通教程运用ServletContextListener在服
普通教程server-config.wsdd配置一例
普通教程java语言语法细节(自用)
普通教程Jbpm3.0在JBoss上地部署及默认数
普通教程proxool连接池地运用
普通教程新版JDBC连接SqlServer2005数据
PHOTOSHOP - 基础教程 抠图专题 蒙版专题 3DsMax 基础 设计实例 Maya设计实例
3D设计教程
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright ? 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL. 电脑硬件 电脑知识 教程学习
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光