`

问题积累——IllegalStateException: getOutputStream() 异常的解决方案

    博客分类:
  • web
阅读更多

    在写JSP程序的时候,如果程序中调用了response.getOutputStream()去向客户端输出文件等数据流,容器就会抛出这样的异常:

Java.lang.IllegalStateException: getOutputStream() has already been called for this response at org.apache.catalina.connector.Response.getWriter(Response.java:596)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:186)
产生这样的异常原因:是web容器生成的servlet代码中有out.write(""),这个和JSP中调用的response.getOutputStream()产生冲突.即Servlet规范说明,不能既调用response.getOutputStream(),又调用response.getWriter(),无论先调用哪一个,在调用第二个时候应会抛出IllegalStateException,因为在jsp中,out变量实际上是通过response.getWriter得到的,你的程序中既用了response.getOutputStream,又用了out变量,故出现以上错误。

解决方案:

在程序的最后添加以下代码即可:

out.clear();    
out = pageContext.pushBody();

 就可以了.

 

分享到:
评论

相关推荐

    java.lang.IllegalStateException: getOutputStream() has already解决办法

    纠结了半天的 java.lang.IllegalStateException: getOutputStream() has already。这个问题困扰了半天,在网上查阅了大量资料 出这个错误一般就是下面2个.....

    关于IllegalStateException: The specified child already has a parent.

    IllegalStateException: The specified child already has a parent.我的博客中有文章讲解

    java.lang.IllegalStateException: Cannot call sendError() after the response has

    在Java的Web开发中,`java.lang.IllegalStateException: Cannot call sendError() after the response has been committed` 是一个常见的错误,通常发生在尝试在HTTP响应已经发送到客户端之后调用`sendError()`方法...

    Java异常之—-Caused by: java.lang.IllegalStateException: Method has too many Body parameters

    异常:Caused by: java.lang.IllegalStateException: Method has too many Body parameters Caused by: java.lang.IllegalStateException: Method has too many Body parameters: public abstract ...

    java.lang.IllegalStateException: OutputStream already obtain

    标题 "java.lang.IllegalStateException: OutputStream already obtain" 涉及到的是Java编程中的一个常见错误,特别是当处理I/O流时。这个异常通常在尝试获取已经存在的OutputStream实例时抛出,表明该输出流已经被...

    Android异常 java.lang.IllegalStateException解决方法

    1. java.lang.IllegalStateException: No wrapped connection. 2.java.lang.IllegalStateException: Adapter is detached. 原因: 1.单线程一次执行一个请求可以正常执行,如果使用多线程,同时执行多个请求时就会...

    spring入门好教程

    它的目标不仅仅是解决单一层次的问题,而是关注整个应用的生命周期,旨在消除中间层的“粘合”代码,让开发者能够更加专注于业务逻辑。 Spring的核心理念是控制反转(Inversion of Control,简称IoC)和面向切面...

    spark 核心架包

    解决java.lang.IllegalStateException: unread block data的架包

    ListView后台更新报错:java.lang.IllegalStateException

    java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but...

    action-buffer:提供了在处理后台任务时避免片段过渡期间出现 IllegalStateException 的示例

    您可以在的非常权威的阅读有关该问题和可能的解决方案的更多信息。 主意 为了避免异常,不应在 Activity 处于非可见(活动)状态时进行转换。 这可以通过简单地缓冲发送到 UI 的操作来实现,直到 UI 能够处理它们。...

    Android异常处理

    异常机制的主要作用是在程序执行过程中出现问题时,能够提供一种有序的方式让程序处理这些异常情况。当出现异常时,程序会停止当前的执行路径,将控制权转移给异常处理器。这种方式确保了即使程序出现错误也能安全地...

    xfire访问webservice客户端用到的jar包

    在Java开发中,Web服务(Web Service)是一种标准的接口,允许不同系统之间进行通信,而XFire是早年流行的一款用于构建和消费Web服务的开源框架。它使用SOAP(简单对象访问协议)和XML(可扩展标记语言)作为基础,...

    Jnative1.4_java调用动态库所需jar

    Java是一种高级编程语言,通常用于开发跨平台的应用程序。然而,有时我们可能需要在Java程序中调用操作系统底层的动态链接库(DLLs on Windows,SOs on Linux,dylibs on macOS),以便利用C、C++等语言编写的高性能...

    oop object , for apple ios developer

    ### 面向对象编程与Objective-C:苹果iOS开发者指南 #### 一、概述 面向对象编程(Object-Oriented Programming, ...深入理解Objective-C不仅可以帮助开发者更好地理解苹果平台的技术栈,还能提升其解决问题的能力。

    tomcat启动的错误

    ### Tomcat启动时遇到的错误解析 在进行SSH(Struts+Spring+Hibernate)框架整合的过程中,启动Tomcat服务器时常会遇到一些问题。这些问题如果不能及时解决,将...希望本文能够帮助您顺利解决问题,确保项目稳定运行。

    jacob使用说明终极吐血版

    // 调用可能抛出异常的代码 } catch (ComException e) { int hresult = e.getHresult(); String description = e.getDescription(); // 处理错误... } ``` ## 7. 多线程和线程安全 Jacob支持在多线程环境中...

    将应用部署到weblogic10及oracle linux遇到的问题及解决方案

    在部署应用时,遇到了 java.lang.IllegalStateException: Cannot set web app root system property when WAR file is not expanded 问题。出现这个原因是因为部署的时候使用的是 WAR 包,WebLogic 部署应用不像 ...

    Tomcat启动springboot项目war包报错:启动子级时出错的问题

    这个错误信息出现在`java.lang.IllegalStateException`中,具体是在`ContainerBase.addChildInternal`方法抛出的,这表明在尝试添加或启动Spring Boot的web应用(war包)作为Tomcat的一个子容器时发生了问题。...

    java 实现websocket的两种方式实例详解

    WebSocket是Web交互的一种实时通信协议,它允许服务器与客户端之间进行双向通信,即服务器不仅可以响应客户端的请求,还可以主动向客户端推送数据。在Java中,有两种常见的方式实现WebSocket:使用Tomcat内置的...

Global site tag (gtag.js) - Google Analytics