一个用于多个报告的scriptlet实例

时间:2011-10-10 16:37:22

标签: performance web-services ireport scriptlet

对于多个报告,我有一个调用许多Web服务的scriptlet。调用是在afterReportInit()方法下完成的,以填充几个HashMaps,而HashMaps又用于报告中。问题是Web服务调用是在每个报告生成时执行的,这导致性能非常低。

我正在寻找一种解决方法,以便为所有报告调用一次Web服务。

请注意,报告部署在JasperServer

1 个答案:

答案 0 :(得分:1)

我在调查这件事。到目前为止,我发现JasperReports有一个自定义类加载器,JRClassLoader需要扩展:

http://grepcode.com/file/repo1.maven.org/maven2/net.sf.jasperreports/jasperreports/4.1.2/net/sf/jasperreports/engine/util/JRClassLoader.java#JRClassLoader.%3Cinit%3E%28java.lang.ClassLoader%29

我个人不打扰类加载机制,如果可能的话,尝试使用memcache缓存Web服务调用的结果......根据你的设置,apache也可以这样做。