日期:2014-05-19  浏览次数:20695 次

tomcat里的日志 localhost.***.log中报的一个错误,看不懂,Cannot call sendError() after the respon
错误信息如下
Nov 24, 2012 6:43:17 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [default] in context with path [] threw exception
java.lang.IllegalStateException: Cannot call sendError() after the response has been committed
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:451)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:752)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:505)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
采用的是SSH,不影响使用,但不知道到底是哪边的问题,在线等。。。。
------最佳解决方案--------------------

org.apache.catalina.core.StandardWrapperValve invoke
今天写代码,竟然接连遇到这个异常好几次。debug几个小时才弄明白,晕。
上网找了些拼凑下做个总结,不保证准确无误,记下来仅供参考。
以下是错误原因:
1.servlet或jsp中,重复调用response的 getOutputStream(),response.getWriter()方法
2.form表单里没有 method="post" action=""参数
3.看JDBC操纵数据库的代码,仔细看,例如调用的对象的属性为null。
           Connection conn=null; 之后之就调用了conn.??的方法
           我就时错在这里
仅供参考!


我猜测 Ajax请求之后, response.getWriter()获取PrintWriter 写数据之后没有关闭。。然后1w次的请求,会报10次左右的这种错,,这其实蛮正常的。。
------其他解决方案--------------------
应该URL路径有问题吧
SEVERE: Servlet.service() for servlet [default] in context with path [] threw exception
------其他解决方案--------------------
大侠莫非都去吃饭了?

------其他解决方案--------------------
response 响应无效,把servlet代码贴出来看看,,最好自己手动调试,找原因、、、
------其他解决方案--------------------
引用: