初めてPDFをダウンロードするときに、次回からjava.lang.OutOfMemoryError:Javaヒープスペース がスローされます。現在の最大ヒープサイズは536メガバイトPDFをByteArrayOutputStream
を使用してバイト配列として生成された運のビットでjava.lang.OutOfMemoryError:Javaヒープスペース - PDFを出力ストリームに書き込むとき
httpResp.setHeader("Expires", "0");
httpResp.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
httpResp.setHeader("Pragma", "public");
httpResp.setHeader("Content-Disposition", "inline; filename="+"BulkIdCard"+".pdf");
httpResp.setContentType("application/pdf");
httpResp.getOutputStream().write(byte[]);//pdf in byte array
httpResp.getOutputStream().flush();
httpResp.getOutputStream().close();
これらのPDF文書はどれぐらいの大きさで、どこかに貼り付けられた最初の文書のハンドルですか? –
最初のダウンロードが行われたときに作成された最初のバイト[]をヒープが処理できる可能性があります。また、再度ダウンロードすると、割り当てられたJavaヒープ容量を超えた別のバイト[]が作成されます。ダウンロード要求を受け取るたびに新しいバイト[]を作成していますか? – vvtx
@TimBiegeleisen PDFサイズは1ページにすることも、50ページにすることもできます。テストされた1つのフローでは、PDFサイズは7 MB、ページ数は14です。 –