首次下载PDF时,下次抛出java.lang.OutOfMemoryError:Java堆空间 。当前最大堆大小为536 MBjava.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页。对于一个测试流程,PDF大小为7 MB,页数为14. –