BIRTランタイムをアプリケーション(EARファイル)にバンドルしており、最近まで使用していたバージョン2.2ではすべて問題ありませんでした。ただし、BIRT 2.5.1にアップグレードすると、クラスの読み込みの問題が発生します。
BIRTランタイムは、Java extクラスパスに別のxerces.jarファイルがあるため、クラス読み込みの競合の根本原因であるxerces.jarファイルをパッケージ化します。簡単な解決策は、BIRTランタイムにパッケージ化されているxerces.jarファイルを削除し、BIRTに親クラスローダー階層からxercesクラスをピックアップさせることでした。ただし、BIRTランタイムプラグインディレクトリからxerces.jarファイルを削除するとレポートが失敗するため、これは発生しないようです。
私のアプリの構造についてもう少し詳しく説明します
EAR-
アプリクラス
-WAR
----WEB-INF
------プラットフォーム(BIRT)
--------プラグイン(BIRT)
親クラスローダーのxerces.jarファイルから必要なクラスをBIRTにロードさせる方法はありますか?
前もって感謝します。