我在用struts的时候,jsp页面出现了一个java.io.IOException: Stream closed的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在用struts的时候,jsp页面出现了一个java.io.IOException: Stream closed的问题相关的知识,希望对你有一定的参考价值。

Struts Problem Report
Struts has detected an unhandled exception:
Messages:
Stream closed

File: org/apache/jasper/runtime/JspWriterImpl.java
Line number: 210
Stacktraces
java.io.IOException: Stream closed
org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:210)
org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:115)
org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:177)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:942)
org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:656)
org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:132)
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:371)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:275)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)

参考技术A 你在操作流之前,已经做了一个关闭流的操作...
jsp也是容器,光看报错信息看不出来错在哪里,不过你可以看看jsp和服务器端的业务流程,
比如: 在jsp调用数据流之前 ,服务器端已经close掉了追问

太高深了,看不懂

参考技术B 你在后台java执行完之后用 return null追问

struts 的action return null之后就无法跳转页面了啊

追答

你这个在线打开word 还是下载出现的问题 。你这个肯定是2次跳向同一个页面出现的情况。

追问

我是用了struts 2 的标签iterator出了问题

追答

你出现的问题 ,网上资料很多 ,你找下吧 、

本回答被提问者采纳
参考技术C 连接数据库的用户名密码是否正确,检查一下追问

这是jsp错误啊

追答

额,对不起光看第一句了,是用的servlet吗?在使用输出流的时候没处理好吧,使用完输出流之后加上这么两句吧out.clear();
out = pageContext.pushBody();
出现原因可能是你同时两个jsp使用到了这个servlet,在另一个调用之前,其中一个已经关闭了这个它,所以会出现这个异常,也只是猜测,你尝试一下。

Struts2框架里面action与前端jsp页面进行交互路径问题---》一个对话框里面有很多超链接,进行相应的跳转

一个对话框里面有很多超链接,右边是点击超链接跳转到的相应页面(在一个页面上就相当于点击该超链接时候,就把该简短页面置顶);这个问题困扰我两天;还请大神给我解决,也没有解决,我仔细对比了相关路径,后面添加就成功了!!

jsp相应路径不正确代码:1.因为这个是jsp页面,所以在访问时候就可以自动添加上相应的路径,如下图,结果不能访问,直接跳转到登录页面

浏览器上显示路径是:

2.在相应超链接前面添加获取该路径,也失败;其中${ctx}是自定义的获取浏览器地址

 

3.正确路径:

 

以上是关于我在用struts的时候,jsp页面出现了一个java.io.IOException: Stream closed的问题的主要内容,如果未能解决你的问题,请参考以下文章

jsp页面写入中文到mysql时出现了乱码(转)

Struts2框架里面action与前端jsp页面进行交互路径问题---》一个对话框里面有很多超链接,进行相应的跳转

在运行struts项目时无法为JSP编译类

struts2 action怎么从页面取值传值

如何得到javax.servlet.jsp包

如何在 Struts 2 中将数据库记录列表(通过 Hibernate 检索)显示到 JSP 页面?