BIRT的类加载问题

时间:2010-05-29 18:42:10

标签: osgi classloader birt

我们将BIRT运行时与我们的应用程序(EAR文件)捆绑在一起,一直到最近我们使用的2.2版都很好。但是当我们升级到BIRT 2.5.1时,我们遇到了类加载问题。

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 个答案:

答案 0 :(得分:1)

尝试将osgi.parentClassloader=fwk放入文件configuration/config.ini

您还可以添加osgi.debug=/path/to/debug.options来设置OSGi / Equinox的调试选项。有关可能的选项,请参阅.options中的文件org.eclipse.osgi*.jar。从:

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

你应该在stdout上获得一大堆调试输出。