繁体   English   中英

Jasper Reports和巨大的XML作为数据源

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM