Tomcat8
Java8
jsp
ファイル(zipファイル)ダウンロード処理(jsp)をすると
log
1[localhost.yyyy-mm-dd.log]中に 2重大 [http-nio-80-exec-12] org.apache.catalina.core.StandardHostValve.custom Exception Processing ErrorPage[exceptionType=java.lang.Exception, location=/WEB-INF/page/error500.jsp] 3 org.apache.jasper.JasperException: java.lang.IllegalStateException: getOutputStream()はこのレスポンスに対して既に呼び出されています
と記載されています。
ダウンロード処理自体はうまくいくのですが、ログに「重大」ログが記載されてしまいます。
(1)重大ログが溜まり続けると何かサービスダウンするなどの不具合が起きますでしょうか?
(2)どのようにしたら「重大」ログを回避することができますでしょうか?
java
1ServletOutputStream out2 = response.getOutputStream(); 2byte[] outputByte = new byte[(int)file.length()]; 3 //copy binary contect to output stream 4 while(fileIn.read(outputByte, 0, (int)file.length()) != -1) 5 { 6 out2.write(outputByte, 0, (int)file.length()); 7 } 8 //クローズ処理 9 fileIn.close(); 10 out2.close();
の箇所が「重大」の原因になっていると思い、
ServletOutputStream out2 = response.getOutputStream();
↓
PrintWriter out2 = response.getWriter();
とすると、
out2.write(outputByte, 0, (int)file.length());
の箇所で、
「型 PrintWriter のメソッド write(char[], int, int) は引数 (byte[], int, int) に適用できません」
となってしまいます。
どなたかご教授宜しくお願いします。
あなたの回答
tips
プレビュー