2

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にロードさせる方法はありますか?

前もって感謝します。

4

1 に答える 1

1

osgi.parentClassloader=fwkファイルに入れてみてくださいconfiguration/config.ini

osgi.debug=/path/to/debug.optionsOSGi/Equinox のデバッグ オプションを設定するために追加することもできます。可能なオプションについては、 のファイル.optionsを参照してください。org.eclipse.osgi*.jar皮切りに:

org.eclipse.osgi/debug=true
org.eclipse.osgi/resolver/debug=true

そして、stdout でデバッグ出力の塊全体を取得する必要があります。

于 2010-07-12T08:42:22.373 に答える