tomcat里的日志 localhost.***.log中报的一个错误,看不懂,Cannot call sendError() after the respon

njutmars 2012-11-24 07:14:59
错误信息如下
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,不影响使用,但不知道到底是哪边的问题,在线等。。。。
...全文
3222 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
无情何其多 2014-08-08
  • 打赏
  • 举报
回复
可能是你还没去请求得到响应信息就会出现这种原因 public InputStream sendResultRequestGet(String requestAddress, String JSESSIONID) throws XCFH_CheckException { InputStream in = null; try { System.out.println("requestAddress = " + requestAddress); URL url = new URL(requestAddress); HttpURLConnection httpconection = (HttpURLConnection) url.openConnection(); httpconection.setDoInput(true); httpconection.setDoOutput(true); httpconection.setRequestMethod("GET"); httpconection.setUseCaches(false); httpconection.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.9) Gecko/20100827 Red Hat/3.6.9-2.el6 Firefox/3.6.9 "); System.out.println(JSESSIONID + "; path=/"); httpconection.setRequestProperty("Cookie", "JSESSIONID=" + JSESSIONID + "; path=/"); System.out.println("in大小 = " + in.available()); in = httpconection.getInputStream();//获取发票验真返回信息 return in; } catch (Exception e) { // TODO: handle exception throw new XCFH_CheckException(requestAddress, e); } } 向上面的打印信息就是错误原因,因为还没去请求得到响应信息就打印流大小,当然会报错,应该在接收完响应信息后再去打印流的大小就不会报错了
五七七 2014-01-15
  • 打赏
  • 举报
回复
请问是怎么解决的,我也遇到这个情况了,而且我不知道是在哪里报的错
njutmars 2012-11-28
  • 打赏
  • 举报
回复
引用 7 楼 ch656409110 的回复:
引用 6 楼 njutmars 的回复:引用 5 楼 ch656409110 的回复:org.apache.catalina.core.StandardWrapperValve invoke 今天写代码,竟然接连遇到这个异常好几次。debug几个小时才弄明白,晕。 上网找了些拼凑下做个总结,不保证准确无误,记下来仅供参考。 以下是错误原因: 1.servlet或j……
嗯,嘿嘿,多谢了,问题解决了,有点强迫症,看不得报错
  • 打赏
  • 举报
回复
引用 6 楼 njutmars 的回复:
引用 5 楼 ch656409110 的回复:org.apache.catalina.core.StandardWrapperValve invoke 今天写代码,竟然接连遇到这个异常好几次。debug几个小时才弄明白,晕。 上网找了些拼凑下做个总结,不保证准确无误,记下来仅供参考。 以下是错误原因: 1.servlet或jsp中,重复调用response的 ge……
在实际项目运营过程中报错是难免的,只要不是致命的错误,不影响整个系统的错误,不用太担心(不能说不用管), 百分之零点一的概率这个几率已经很小了, 之所以说蛮正常只是不想让你担心呗。
njutmars 2012-11-26
  • 打赏
  • 举报
回复
引用 5 楼 ch656409110 的回复:
org.apache.catalina.core.StandardWrapperValve invoke 今天写代码,竟然接连遇到这个异常好几次。debug几个小时才弄明白,晕。 上网找了些拼凑下做个总结,不保证准确无误,记下来仅供参考。 以下是错误原因: 1.servlet或jsp中,重复调用response的 getOutputStream(),response.getWriter()……
确实应该是第一种,验证码我自己写的,重复调用response的 getOutputStream(),response.getWriter()方法 至于蛮正常的是什么意思,是指不担心吗
  • 打赏
  • 举报
回复
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次左右的这种错,,这其实蛮正常的。。
njutmars 2012-11-25
  • 打赏
  • 举报
回复
引用 3 楼 ch656409110 的回复:
response 响应无效,把servlet代码贴出来看看,,最好自己手动调试,找原因、、、
关键是我也不知道是哪个类出的错,每天大于1w次的请求,会报10次左右的这种错,无从下手,给个思路就好
  • 打赏
  • 举报
回复
response 响应无效,把servlet代码贴出来看看,,最好自己手动调试,找原因、、、
网络科技 2012-11-24
  • 打赏
  • 举报
回复
应该URL路径有问题吧 SEVERE: Servlet.service() for servlet [default] in context with path [] threw exception
njutmars 2012-11-24
  • 打赏
  • 举报
回复
大侠莫非都去吃饭了?

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧