你好,我有一个问题,我无法指责......
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]并写出相同的结果发生。在第一次请求时,服务器响应正常。第二,上述异常发生......
欢迎任何帮助
答案 0 :(得分:0)
您问题中的代码不会调用getOutputStream()
,也不会执行任何会导致调用它的代码。所以我得出结论,异常的原因是在其他地方。
最重要的是,您只能针对特定回复呼叫ServletResponse.getOutputStream()
和/或getWriter()
一次。在某个地方,您的应用程序多次调用getOutputStream
或getWriter
。