【发布时间】:2011-11-14 23:55:30
【问题描述】:
你好,我有一个问题,我无法解决.....
servletResp.setHeader("Expires","0")
servletResp.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0")
servletResp.setHeader("Pragma","public")
servletResp.setHeader("Content-Disposition","inline; filename=invoice.pdf")
servletResp.setContentType("application/pdf")
servletResp.setContentLength( outStream.size())
servletResponseStream.write(outStream.toByteArray())
outStream.close()
servletResponseStream.flush()
servletResponseStream.close()
在上面的代码中,假设 outStream 读取了 pdf 文件。该代码在第一次请求时呈现良好。在第二次请求时,我得到:
java.lang.IllegalStateException: getOutputStream() has already been called for this response
输出流是什么并不重要。即使我制作了一个全新的字节 [2] 并写出同样的结果。在第一次请求时,服务器响应良好。第二次发生上述异常....
欢迎任何帮助
【问题讨论】:
-
outStream.close 已经关闭了你的流响应,请提供行号和更多代码
-
@r0ast3d 不,
outStream看起来像ByteArrayOutputStream,没有连接到 servlet 输出流。 -
异常发生在哪一行?你用的是什么网络服务器?请提供有关此问题的更多信息。
标签: java spring grails servlets groovy