2

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

BIRT 运行时打包了一个 xerces.jar 文件,这是类加载冲突的根本原因,因为在 java ext 类路径上还有另一个 xerces.jar 文件。简单的解决方案是删除与 BIRT 运行时打包的 xerces.jar 文件,让 BIRT 从父类加载器层次结构中提取 xerces 类。但是,如果我从 BIRT 运行时插件目录中删除 xerces.jar 文件,这似乎不会发生,因为我的报告会失败。

为您提供有关我的应用程序结构的更多信息

EAR
-- App Classes
-- WAR
---- WEB-INF
------平台(BIRT)
--------插件(BIRT)

有没有办法强制 BIRT 从父类加载器的 xerces.jar 文件中加载所需的类?

提前致谢。

4

1 回答 1

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

你应该在标准输出上得到一大堆调试输出。

于 2010-07-12T08:42:22.373 回答