サーブレットを使用してデータを CSV としてダウンロードしようとしていますが、JSP は に含まれていflush=true
ます。スタック トレースを以下に示します。レポートは期待どおりに保存されていますが、後ろに例外が表示されます。理由を教えてください。を閉じてOutputStream
、バッファをフラッシュしようとしましたが、まだ運がありません。
1:36:38,304 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:619)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:173)
at atg.taglib.dspjsp.IncludeTag.flushOut(IncludeTag.java:873)
at atg.taglib.dspjsp.IncludeTag.doEndTag(IncludeTag.java:773)
pResponse.setContentType(MS_EXCEL);
pResponse.setHeader(CONTENT,FILENAME);
outputStream = pResponse.getOutputStream();
pResponse.flushBuffer();
workbook.write(outputStream);
outputStream.flush();
outputStream.close();