我在一个 web 应用程序中工作,它使用 JasperReports 5 (jasperreports-5.0.1.jar) 但在java.lang.OutOfMemoryError之前一直在泄漏内存,这个应用程序生成 10 到 100 页之间的动态报告。
我使用 MAT 是为了了解发生了什么,如下图所示,JasperReports 正在保留内存:

按包分组的直方图:

直方图中的Plantilla和SubReport名称是与我们使用 JasperReports 生成的报告相关的类。
此 Web 应用程序在以下环境中运行:
-WebLogic 11g
-jrockit-jdk1.6.0_45-R28.2.7-4.1.0
-Xms2048m -Xmx2048m
-Oracle Linux
如果您遇到过类似的事情,请告诉我您的经验。