Jasper Error - 4.1.3 PDF

I’m running a PDF report - and it works just great in the Smart Client - no problem.

in the Web Client is getting this error (4.1.3) - any ideas what’s going on?:

2009-06-01 10:30:03,312 ERROR [http-8080-3] org.apache.commons.digester.Digester - Begin event threw exception
java.lang.ClassNotFoundException: net.sf.jasperreports.engine.xml.JasperDesignFactory
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.commons.digester.FactoryCreateRule.getFactory(FactoryCreateRule.java:489)
at org.apache.commons.digester.FactoryCreateRule.begin(FactoryCreateRule.java:389)
at org.apache.commons.digester.Digester.startElement(Digester.java:1361)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1647)
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:239)
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:226)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:214)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:168)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:152)
at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:89)
at com.servoy.r3.plugins.JasperReportsServer.jasperCompile(JasperReportsServer.java:436)
at com.servoy.r3.plugins.JasperReportsProvider.js_jasperCompile(JasperReportsProvider.java:419)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:179)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:347)
at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3666)
at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2680)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:166)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:387)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3125)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:165)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:37)
at com.servoy.j2db.scripting.RemoteDebugScriptEngine.executeFunction(RemoteDebugScriptEngine.java:18)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:64)
at com.servoy.j2db.FormController.Za(FormController.java:68)
at com.servoy.j2db.FormController.executeFunction(FormController.java:309)
at com.servoy.j2db.Zhb.Za(Zhb.java:1)
at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor.fireActionCommand(WebEventExecutor.java:80)
at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor.onEvent(WebEventExecutor.java:33)
at com.servoy.j2db.server.headlessclient.dataui.Zhc.onEvent(Zhc.java:7)
at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:163)
at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:297)
at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:104)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1220)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1297)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1399)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:529)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356)
at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
2009-06-01 10:30:03,375 ERROR [http-8080-3] com.servoy.j2db.util.Debug - Throwable
java.rmi.RemoteException: java.lang.ClassNotFoundException: net.sf.jasperreports.engine.xml.JasperDesignFactory
at com.servoy.r3.plugins.JasperReportsServer.jasperCompile(JasperReportsServer.java:443)
at com.servoy.r3.plugins.JasperReportsProvider.js_jasperCompile(JasperReportsProvider.java:419)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:179)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:347)
at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3666)
at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2680)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:166)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:387)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3125)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:165)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:37)
at com.servoy.j2db.scripting.RemoteDebugScriptEngine.executeFunction(RemoteDebugScriptEngine.java:18)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:64)
at com.servoy.j2db.FormController.Za(FormController.java:68)
at com.servoy.j2db.FormController.executeFunction(FormController.java:309)
at com.servoy.j2db.Zhb.Za(Zhb.java:1)
at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor.fireActionCommand(WebEventExecutor.java:80)
at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor.onEvent(WebEventExecutor.java:33)
at com.servoy.j2db.server.headlessclient.dataui.Zhc.onEvent(Zhc.java:7)
at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:163)
at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:297)
at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:104)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1220)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1297)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1399)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:529)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356)
at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
2009-06-01 10:30:03,375 ERROR [http-8080-3] com.servoy.j2db.util.Debug - Throwable
org.mozilla.javascript.WrappedException: Wrapped java.lang.Exception: java.lang.ClassNotFoundException: net.sf.jasperreports.engine.xml.JasperDesignFactory (C:\Documents and Settings\Bob\Desktop\Servoy 4.1.1 Workspace\sli_fast\forms\dlg_reportDate\dlg_reportDate_methods.js#67)
at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1828)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:199)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:347)
at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3666)
at script.btnOK(C:\Documents and Settings\Bob\Desktop\Servoy 4.1.1 Workspace\sli_fast\forms\dlg_reportDate\dlg_reportDate_methods.js:67)
at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2680)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:166)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:387)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3125)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:165)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:37)
at com.servoy.j2db.scripting.RemoteDebugScriptEngine.executeFunction(RemoteDebugScriptEngine.java:18)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:64)
at com.servoy.j2db.FormController.Za(FormController.java:68)
at com.servoy.j2db.FormController.executeFunction(FormController.java:309)
at com.servoy.j2db.Zhb.Za(Zhb.java:1)
at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor.fireActionCommand(WebEventExecutor.java:80)
at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor.onEvent(WebEventExecutor.java:33)
at com.servoy.j2db.server.headlessclient.dataui.Zhc.onEvent(Zhc.java:7)
at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:163)
at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:297)
at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:104)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1220)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1297)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1399)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:529)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356)
at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.Exception: java.lang.ClassNotFoundException: net.sf.jasperreports.engine.xml.JasperDesignFactory
at com.servoy.r3.plugins.JasperReportsProvider.js_jasperCompile(JasperReportsProvider.java:423)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:179)
… 41 more

Its looks like you using none compiled reports. That is not causing the error, but perhaps it solves your problem when you use compiled reports (and it is faster)

Hi Danny,

That’s just the thing - I AM using compiled reports (I’ve tried both using just the compiled report, and then the jrxml and issuing the compile command from the method - which DID work).

It works just beautifully in the Smart Client - but this error comes from the web client…

Thanks for the reply, though!

Bob

Hi bob,

you have a

java.lang.ClassNotFoundException: net.sf.jasperreports.engine.xml.JasperDesignFactory

Meaning that for some reason, the WebappClassLoader (Tomcat) doesn’t find the class in its classpath.
Do you have more than one “jasperreports-xxxx.jar” in you plugin folder, in you lib folder, bean folder or anywhere in your classpath?

I would check that if I were you.

Hope this helps,

Thanks very much Patrick, but there is only one jasperreports-xxxx.jar. I have the “normal” jasper-xxx.jar files in the bin folder - but that’s it. There’s only one jasperreports-xxxx.jar.

Any idea why it would blow up in the Web Client and not the Smart as well?

Hi Bob,

I just tested it on Windows with Servoy 4.1.3 Developer, Smart client and Web client, and on a server with Smart client and Web client. It worked each time. Which version do you use?

When you say that it’s in the bin folder, that’s strange, I would have thought that it should be located inside /Servoy/application_server/plugins/servoy_jasperreports/, mine is.

Anyway, the Smart client is using the jnlp file (and the classpath of your system) to find the jars to use, while Tomcat is using its server.xml file, its regular folder structure $tomcat_home$/lib and $tomcat_home$/webapps/ROOT/WEB-INF/lib (for the default context or any other context you use) to find libs.

I would say that when you launch the Smart client, since it uses your system classpath, it finds the jasperreports jar but in the web client, this is tomcat not finding it…

So check the /Servoy/application_server/plugins/servoy_jasperreports/ folder and see if it’s there.

The problem is definitively that Tomcat is not finding the jasperreports jar, so first be sure that it is in /Servoy/application_server/plugins/servoy_jasperreports/, then try opening the Servoy/application_server/server/confserver.xml file to see if there is an entry like this:

I’m pretty sure it is a problem of classpath versus classloader in Tomcat.

This is most likely a bug in the JasperReport libraries.

This issue was raised at JasperSoft and supposedly fixed in their latest release of the JasperReports engine (3.5.1).

You could try to upgrade the engine (jasperreprts.jar).

Paul

Patrick and Paul - MANY thanks! I will download 3.5.1 and will let you know how it goes.

3.5.1 FIXED IT!

Again, Paul & Patrick - I really appreciate your help (and patience) in helping with this issue!