views:

145

answers:

1

We bundle the BIRT runtime with our application(EAR file) and everything was fine with version 2.2 which we were using until recently. However when we upgraded to BIRT 2.5.1 we are running into class loading issues.

The BIRT runtime packages a xerces.jar file which is the root cause for the class loading conflict becuase there is another xerces.jar file on the java ext class path. The simple solution would have been to remove the xerces.jar file that is packaged with the BIRT runtime and let BIRT pickup the xerces classes from the parent classloader hierarchy. However that does not seem to happen as my reports fail if I remove the xerces.jar file from the BIRT runtime plugins directory.

To give you a little bit more info on my app structure

EAR
-- App Classes
-- WAR
---- WEB-INF
------platform (BIRT)
--------plugins (BIRT)

Is there a way to force BIRT to load the required classes from the xerces.jar file from the parent classloader?

Thanks in advance.

A: 

Try to put osgi.parentClassloader=fwk in the file configuration/config.ini.

You can also add osgi.debug=/path/to/debug.options to set debug options for OSGi/Equinox. See the file .options in the org.eclipse.osgi*.jar for possible options. Start with:

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

and you should get a whole wad of debug output on stdout.

Aaron Digulla