Jasper report error

When saving to Excel I get this error:

java.rmi.ServerError: Error occurred in server thread; nested exception is: 
	java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFSheet.setRightToLeft(Z)V
	at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
	at sun.rmi.transport.Transport$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
	at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
	at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
	at sun.rmi.server.UnicastRef.invoke(Unknown Source)
	at com.servoy.plugins.jasperreports.JasperReportsServer_Stub.getJasperBytes(Unknown Source)
	at com.servoy.plugins.jasperreports.JasperReportsProvider.runReport(JasperReportsProvider.java:600)
	at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:370)
	at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:363)
	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:353)
	at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:81)
	at org.mozilla.javascript.gen.c166._c0(jasper_report:1277)
	at org.mozilla.javascript.gen.c166.call(jasper_report)
	at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:81)
	at org.mozilla.javascript.gen.c151._c0(svy_utl_callMethod:2550)
	at org.mozilla.javascript.gen.c151.call(svy_utl_callMethod)
	at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:73)
	at org.mozilla.javascript.gen.c165._c0(svy_utl_busy_process:2277)
	at org.mozilla.javascript.gen.c165.call(svy_utl_busy_process)
	at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:476)
	at com.servoy.j2db.plugins.ClientPluginAccessProvider$MethodExecutor.run(ClientPluginAccessProvider.java:511)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.Dialog$1.run(Unknown Source)
	at java.awt.Dialog$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.Dialog.show(Unknown Source)
	at java.awt.Component.show(Unknown Source)
	at java.awt.Component.setVisible(Unknown Source)
	at java.awt.Window.setVisible(Unknown Source)
	at java.awt.Dialog.setVisible(Unknown Source)
	at com.servoy.j2db.util.JEscapeDialog.setVisible(JEscapeDialog.java:165)
	at com.servoy.j2db.FormDialog.setVisible(FormDialog.java:153)
	at com.servoy.j2db.smart.SwingFormManager.showFormInDialog(SwingFormManager.java:790)
	at com.servoy.j2db.scripting.JSApplication.js_showFormInDialog(JSApplication.java:1855)
	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:353)
	at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:81)
	at org.mozilla.javascript.gen.c152._c0(report_dlg:2877)
	at org.mozilla.javascript.gen.c152.call(report_dlg)
	at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:73)
	at org.mozilla.javascript.gen.c151._c0(svy_utl_callMethod:2544)
	at org.mozilla.javascript.gen.c151.call(svy_utl_callMethod)
	at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:73)
	at org.mozilla.javascript.gen.c149._c0(svy_nav_call_menu_item:4634)
	at org.mozilla.javascript.gen.c149.call(svy_nav_call_menu_item)
	at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:387)
	at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3135)
	at org.mozilla.javascript.gen.c149.call(svy_nav_call_menu_item)
	at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:476)
	at com.servoy.j2db.plugins.ClientPluginAccessProvider$MethodExecutor.run(ClientPluginAccessProvider.java:511)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFSheet.setRightToLeft(Z)V
	at net.sf.jasperreports.engine.export.JRXlsExporter.createSheet(JRXlsExporter.java:268)
	at net.sf.jasperreports.engine.export.JRXlsAbstractExporter.exportReportToStream(JRXlsAbstractExporter.java:584)
	at net.sf.jasperreports.engine.export.JRXlsAbstractExporter.exportReport(JRXlsAbstractExporter.java:299)
	at com.servoy.plugins.jasperreports.JasperReportRunner.getJasperBytes(JasperReportRunner.java:205)
	at com.servoy.plugins.jasperreports.JasperReportsServer.getJasperBytes(JasperReportsServer.java:203)
	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 sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
	at sun.rmi.transport.Transport$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

When saving the same report to another format there is no problem. This happens only on application server, not in developer.

this happens most likely because you use a wrong apache poi lib in jasper. I guess an old one that doesn’t have that method yet

We use poi-3.6.jar, from the distribution on servoyforge

Make sure that an old version of the poi jar is NOT in the lib since servoy may pick it instead of the one with Jasper…

Before installing the new version I cleared the plugins\servoy_jasperreports directory, I cleared application_server\server\work\Catalina\localhost and I cleared the java-cache of the client. The old version of the poi cannot reside somewhere else, can it?

I receive the same error only in server (not in my developer), I have the same libraries in both environments, any ideas?

then somehow there are 2 of them found and in developer the first one is picked up and in server the other one.

Is jakarta-poi.jar the same library as poi-3.6.jar?

i think in 5 that is a quite old one yes.
Thats your problem, in 6 that lib is upgraded and it is even 3.7 (don’t know the exact version of 5 but it is definitely not 3.6 or 3.7 but a much lower one)

In servoyforge forum (here) there is a workaround to solve this.

Thanks!