0

複数のレポート用に、多くの Web サービスを呼び出すスクリプトレットがあります。呼び出しはafterReportInit()、レポートで使用されるいくつかの HashMap を埋めるメソッドの下で行われます。問題は、レポート生成のたびに Web サービス呼び出しが実行されるため、パフォーマンスが非常に低下することです。

これらの Web サービスをすべてのレポートに対して 1 回呼び出す回避策を探しています。

レポートは 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 に答える