2010-05-29 62 views
2

我們將BIRT運行時與我們的應用程序(EAR文件)捆綁在一起,並且直到最近我們使用的版本2.2都可以正常運行。但是,當我們升級到BIRT 2.5.1時,我們遇到了類加載問題。BIRT的類加載問題

BIRT運行時打包了一個xerces.jar文件,該文件是類加載衝突的根本原因,因爲java ext類路徑中存在另一個xerces.jar文件。簡單的解決方案應該是去除與BIRT運行時打包在一起的xerces.jar文件,並讓BIRT從父類加載器層次中拾取xerces類。但是,如果我從BIRT運行時插件目錄中刪除xerces.jar文件,報告會失敗,但這似乎不會發生。

爲了給你多一點信息我的應用程序結構

EAR
- 應用類
- WAR
---- WEB-INF
------平臺(BIRT)
--------插件(BIRT)

有沒有辦法強制BIRT從父類加載器的xerces.jar文件中加載所需的類?

在此先感謝。

回答

1

嘗試將osgi.parentClassloader=fwk置於文件configuration/config.ini中。

您還可以添加osgi.debug=/path/to/debug.options來爲OSGi/Equinox設置調試選項。有關可能的選項,請參閱org.eclipse.osgi*.jar中的文件.options。開始於:

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

你應該在stdout上得到一大堆的調試輸出。