开发者社区> 问答> 正文

java 下载出错 400 请求报错 

各位路过的朋友,帮帮怎么解决以下问题
严重: Servlet.service() for servlet jsp threw exception java.lang.IllegalStateException: getOutputStream() has already been called for this response  at org.apache.catalina.connector.Response.getWriter(Response.java:611)  at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)  at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)  at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)  at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:188)  at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:118)  at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:77)  at org.apache.jsp.error_jsp._jspService(error_jsp.java:86)  at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)  at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)  at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)  at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)  at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)  at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)  at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)  at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)  at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:157)  at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)  at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373)  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)  at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)  at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:498)  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:235)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554)  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)  at java.lang.Thread.run(Thread.java:662)

展开
收起
kun坤 2020-05-29 15:52:42 521 0
1 条回答
写回答
取消 提交回答
  • at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
     at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    看起来是forward引起的,你看看在forward之前是否有向客户端输出什么东西。如果有输出,那么forward会抛出IllegalStateException的。
    The forward method of the RequestDispatcher interface may be called by the calling servlet only when no output has been committed to the client. If output data exists in the response buffer that has not been committed, the content must be cleared before the target servlet’s service method is called. If the response has been committed, an IllegalStateException must be thrown.

    ######发生2次重定向了。。######回复 @zyzzyz : 可否告知你的这个问题怎么解决吗######谢谢,萌萌哒,这个问题解决了

    2020-05-29 15:53:07
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载