0

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

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

请注意,报告部署在 JasperServer 上

4

1 回答 1

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 也可能会这样做。

于 2012-01-29T00:12:02.033 回答