今天写java文件下载程序,完成后使用一切正常,但是总抛出java.lang.IllegalStateException异常,虽然并不影响正常使用,但看了总让人觉得很不舒服,检查代码并没有错,最后上网查了不少资料,终于发现原因之所在。
我们在做文件上传或者下载,或者过滤等操作时,可能要用到页面的输出流.
例如在action中使用:
response.reset();
response.setContentType(”application/vnd.ms-excel”);
OutputStream os = response.getOutputStream();
抛出异常:java.lang.IllegalStateException
原因分析:
这是web容器生成的servlet代码中有out.write(””),这个和JSP中调用的response.getOutputStream()产生冲突.
即Servlet规范说明,不能既调用 response.getOutputStream(),又调用response.getWriter(),无论先调用哪一个,在调用第二个时候应会抛出 IllegalStateException,
因为在jsp中,out变量是通过response.getWriter得到的,在程序中既用了response.getOutputStream,又用了out变量,故出现以上错误。
法一:在JSP文件中,加入下面两句
<% out.clear(); out = pageContext.pushBody(); %>
|
此法的缺陷:
很多开发项目并不是JSP前端,如freemarker,velocity等
造成问题的"response.getOutputStream()"并未被写在JSP里,而是写在servlet/action里
法二: 在action中,不要return 回具体的result文件,而是return null
//return SUCCESS; return null;
|
分享到:
相关推荐
标题 "java.lang.IllegalStateException: OutputStream already obtain" 涉及到的是Java编程中的一个常见错误,特别是当处理I/O流时。这个异常通常在尝试获取已经存在的OutputStream实例时抛出,表明该输出流已经被...
Spring框架,由Rod Johnson创立并由Interface21公司推广,自诞生以来,它就致力于简化Java企业级应用(J2EE)的开发,提供了一种非侵入式的解决方案,极大地提高了开发效率。它的目标不仅仅是解决单一层次的问题,...
项目中碰到的,已解决,写个文档记录一下
错误信息"无法解析运行时描述符: java.lang.IllegalStateException: MASM0001:"指出在部署Web服务时遇到了异常情况。这个错误代码MASM0001通常与WebLogic的模块组装(Module Assembly)过程有关,该过程是将应用组件...
这个错误信息出现在`java.lang.IllegalStateException`中,具体是在`ContainerBase.addChildInternal`方法抛出的,这表明在尝试添加或启动Spring Boot的web应用(war包)作为Tomcat的一个子容器时发生了问题。...
这个存储库提供了一种在处理片段传输和后台任务时避免“java.lang.IllegalStateException:Can not perform this action after onSaveInstanceState”的方法。 您可以在的非常权威的阅读有关该问题和可能的解决方案...
### Java常见异常汇总 ...综上所述,Java 开发过程中会遇到各种异常情况,理解这些异常的原因和解决方案对于提高开发效率至关重要。以上列举的一些常见异常及其处理方法希望能帮助开发者更好地解决问题。
java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; 解决方案: * 将下载好的驱动添加到系统环境变量 path 中,类似 Java 变量...
Tomcat 部署多个项目解决方案 在 Tomcat 中部署多个项目时,可能会遇到一些问题,例如多个项目间的配置冲突、日志记录问题等。以下是解决这些问题的方法和相关知识点。 问题 1:java.lang.IllegalStateException ...
本文将对“tomcat启动的错误”这一主题进行深入探讨,并结合具体的错误信息来分析其原因及解决方案。 #### 错误描述:“Could not load com.mysql.jdbc.Messages Could not load java.net.BindException MySQL JDBC...
以下是一些常见问题及其解决方案: 1. **类签名不匹配**: 当出现“'org.apache.commons.collections.SequencedHashMap'的签名信息与同一包中的其他类的签名信息不匹配”这样的错误时,通常是因为不同库提供的相同...
01-16 22:18:39.222:E/AndroidHttpClient(26745): java.lang.IllegalStateException: AndroidHttpClient created and never closed ``` **原因分析**: 此错误表明`AndroidHttpClient`对象创建后未曾被正确关闭。`...
本文将针对几种常见的错误日志进行深入解析,并给出相应的解决方案。 #### 二、常见异常日志类型及分析 ##### 1. 空指针异常 (NullPointerException) **定义**: 当尝试访问一个空对象的成员时,Java会抛出`...
java.lang.IllegalStateException: Failed to read Class-Path attribute from manifest of jar file:/XXX 出现这个问题的解决方案就是将原有的jar删除 然后重新下载过一遍就可以使用
在使用 Feign 时,需要正确使用@PathVariable 注解,否则,会抛出异常,例如:Caused by: java.lang.IllegalStateException: PathVariable annotation was empty on param 0。正确的使用方式是:@RequestMapping...
在本文中,我们将详细记录这些问题和解决方案,以便为后续的部署工作提供参考。 一、意外的异常 在将 Tomcat 环境下的应用移植到 WebLogic 下的过程中,遇到了第一个问题,那就是意外的异常错误。在处理请求时出现...
WebRex目录包括WebRex标签库在JSP页面中定义一个插槽将资源分配到插槽其他资源类型的使用WebRex Java API 获取单个资源的URL 获取聚合结果的URL 将资源添加到页面上的现有插槽中常问问题为什么会出现异常:java.lang...
首先,我们遇到的第一个问题是“意外的异常”和“java.lang.OutOfMemoryError: unable to create new native thread”。这通常发生在尝试上传大型应用war包至WebLogic管理服务器时。由于应用较大,系统内存不足,...