Home
Analytics
adding jar files to classpath
kumarisam
I have a web Application configured in Rational Application Developer that interfaces with the BIRT Reporting Engine API. I am getting the following error when the web application Java code tries to execute the reporting engine API.
Caused by: java.lang.ClassNotFoundException: org.eclipse.birt.data.engine.core.DataException
at java.net.URLClassLoader.findClass(URLClassLoader.java:423)
at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:150)
at java.lang.ClassLoader.loadClass(ClassLoader.java:653)
at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:90)
at java.lang.ClassLoader.loadClass(ClassLoader.java:619)
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62)
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:509)
at java.lang.ClassLoader.loadClass(ClassLoader.java:619)
I have referenced all the required jar files for BIRT in the web application class path. Do I need to add the jar files any where else so that BIRT URLClassLoader can find the required classes.
Find more posts tagged with
Comments
JasonW
Do you have your engine setup like:
http://wiki.eclipse.org/Servlet_Example_(BIRT)_2.1
Jason
kumarisam
<blockquote class='ipsBlockquote' data-author="'JasonW'" data-cid="74390" data-time="1299530793" data-date="07 March 2011 - 01:46 PM"><p>
Do you have your engine setup like:<br />
<a class='bbc_url' href='
http://wiki.eclipse.org/Servlet_Example_(BIRT)_2.1'>http://wiki.eclipse.org/Servlet_Example_(BIRT)_2.1</a><br
/>
<br />
Jason<br /></p></blockquote>
<br />
<br />
By doing what is suggested on the link you mentioned, I was able to get pass that class path error for BIRT jar files that is in the web application class path. But I am still getting "Exception created : java.lang.NoClassDefFoundError" for projects referenced by web application.<br />
RevenueByAreaData class is in a Java utility project that is referenced by the web application.<br />
I even created a jar file for the Java utility project and add it to the class path using the below line.<br />
But still having the same issue.<br />
<br />
engineConfig.getAppContext().put(EngineConstants.WEBAPP_CLASSPATH_KEY, "c:/BIRT/lib/jlog.jar;c:/BIRT/lib/odb_reports_engine.jar");<br />
<br />
[3/8/11 11:47:55:351 CST] 0000002a servlet E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet action in application cmsweb1_ear. Exception created : java.lang.NoClassDefFoundError: com.ibm.ezposte.emk.reportingengine.model.RevenueByAreaData<br />
at com.ibm.ezposte.emk.odb.web.actions.RevenueByAreaAction.execute(RevenueByAreaAction.java:146)<br />
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)<br />
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)<br />
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)<br />
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
JasonW
Are you setting the parent classloader for the engine?
engineConfig.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, theclassthatlaunchestheengine.class.getClassLoader());
Jason