[英]Jasper Reports and huge XML as data source
我有一个巨大的.xml
作为数据源(约100 MB)。 如何有效地使用这个xml准备pdf而没有java.lang.OutOfMemoryError: Java heap space
?
HashMap<String, Object> params = new HashMap<String,Object>();
// below i get: java.lang.OutOfMemoryError
Document document = JRXmlUtils.parse(JRLoader.getLocationInputStream(dataSource));
params.put(JRXPathQueryExecuterFactory.PARAMETER_XML_DATA_DOCUMENT, document);
jasperPrint = JasperFillManager.fillReport(jasperReport, params);
你可以增加堆 - 如果可能的话。 但是为100MB xml文件创建DOM以及在同一JVM中创建pdf文档确实需要大量内存。 尝试使用基于事件的SAX解析器处理输入文件。 这应该会显着减少内存占用!
除了使用更好的XML解析器之外,还要检查Jasper Reports - Virtualizer 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.