Servoy 2024.12.0

Hey guys,

first thanks for the update. Today i had the time to upgrade my workspace to 24.12.
Everythings works how it should except one thing.

Im using jasper reports, which works perfectly just as the previous version. I updated the plugins, recompiled the reports with JasperStudio 7, etc.
[attachment=1]jasper_issue_sc1.png[/attachment]

One thing tho.
Im using PDF-Tags in my reports. Text Field are working fine, see first screenshot.

But in one report i have a PDF-Tag which is a Check-Box. See my Settings here:
[attachment=0]jasper_issue_sc2.png[/attachment]

As soon as i run the report with the Check-Box i get a 500 Internal Server error and the following console-error:

ERROR org.sablo.eventthread.EventDispatcher - [dispatch()] Exception happened in dispatch() java.lang.NoSuchMethodError: 'com.lowagie.text.pdf.PdfFormField com.lowagie.text.pdf.RadioCheckField.getFullField()'
	at net.sf.jasperreports.pdf.classic.ClassicRadioCheck.add(ClassicRadioCheck.java:79) ~[?:?]
	at net.sf.jasperreports.pdf.JRPdfExporter.exportFieldCheck(JRPdfExporter.java:2782) ~[?:?]
	at net.sf.jasperreports.pdf.JRPdfExporter.exportElements(JRPdfExporter.java:1242) ~[?:?]
	at net.sf.jasperreports.pdf.JRPdfExporter.exportPage(JRPdfExporter.java:1211) ~[?:?]
	at net.sf.jasperreports.pdf.JRPdfExporter.exportReportToStream(JRPdfExporter.java:1104) ~[?:?]
	at net.sf.jasperreports.pdf.JRPdfExporter.exportReport(JRPdfExporter.java:667) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportRunner.getJasperBytes(JasperReportRunner.java:411) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportsProvider.handleWebClientExport(JasperReportsProvider.java:783) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportsProvider.getExportedJasperReport(JasperReportsProvider.java:741) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportsProvider.runReport(JasperReportsProvider.java:546) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:403) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:279) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:222) ~[?:?]
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) ~[?:?]
	at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
	at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:227) ~[?:?]
	at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:284) ~[?:?]
	at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1904) ~[?:?]
	at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:1078) ~[?:?]
	at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:87) ~[?:?]
	at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2868) ~[?:?]
	at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:343) ~[?:?]
	at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:84) ~[?:?]
	at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:46) ~[?:?]
	at org.mozilla.javascript.gen.c_5._c_anonymous_67(Unknown Source) ~[?:?]
	at org.mozilla.javascript.gen.c_5.call(Unknown Source) ~[?:?]
	at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:383) ~[?:?]
	at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:4023) ~[?:?]
	at org.mozilla.javascript.gen.c_5.call(Unknown Source) ~[?:?]
	at com.servoy.j2db.server.ngclient.scripting.WebServiceScriptable.executeScopeFunction(WebServiceScriptable.java:255) ~[?:?]
	at com.servoy.j2db.server.ngclient.NGClient.executeMethod(NGClient.java:1603) ~[?:?]
	at org.sablo.websocket.WebsocketEndpoint$5.run(WebsocketEndpoint.java:420) ~[?:?]
	at org.sablo.eventthread.Event$1.run(Event.java:97) ~[?:?]
	at org.sablo.websocket.CurrentWindow.runForWindow(CurrentWindow.java:80) ~[?:?]
	at org.sablo.eventthread.Event.execute(Event.java:87) ~[?:?]
	at org.sablo.eventthread.EventDispatcher.dispatch(EventDispatcher.java:144) ~[?:?]
	at org.sablo.eventthread.EventDispatcher.run(EventDispatcher.java:90) ~[?:?]
	at com.servoy.j2db.server.ngclient.eventthread.NGEventDispatcher.run(NGEventDispatcher.java:60) ~[?:?]
	at java.base/java.lang.Thread.run(Unknown Source) [?:?]

As far as i see this, i think it has something to do with the iText.jar thingy which is now gone.

Anyone has a idea for this? Thanks

the problem is that the openpdf.jar in Servoy 2024.12 from application_server/plugins/pdf_output is an older version (1.3.30) then what jasper 7.0.1 needs (1,3,32).
can you try to get the right lib from https://repo1.maven.org/maven2/com/gith … 1.3.32.jar and copy it over in the Servoy install, and see if then works?

Hi Gabi,

thanks it works now. Good to know. Replaced the plugins/pdf_output/openpdf.jar with the one from your link and the checkboxes pdf tags are back to normal!

I have a Jasper Report with a chart that has a chart customizer.

After installing Servoy 2024.12, upgrading to JasperStudio 7.0.1, compiling reports to .jasper files, changing the plugin calls, etc., my reports with charts are blowing up. The reports without the chart work fine, but the reports with the chart (with customizer) are generating the following exception:

ERROR org.sablo.eventthread.EventDispatcher - [dispatch()] Exception happened in dispatch() java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRChartCustomizer
	at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
	at java.base/java.lang.ClassLoader.defineClass(Unknown Source) ~[?:?]
	at java.base/java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:?]
	at java.base/java.net.URLClassLoader.defineClass(Unknown Source) ~[?:?]
	at java.base/java.net.URLClassLoader$1.run(Unknown Source) ~[?:?]
	at java.base/java.net.URLClassLoader$1.run(Unknown Source) ~[?:?]
	at java.base/java.security.AccessController.doPrivileged(Unknown Source) ~[?:?]
	at java.base/java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
	at java.base/java.lang.Class.forName0(Native Method) ~[?:?]
	at java.base/java.lang.Class.forName(Unknown Source) ~[?:?]
	at java.base/java.lang.Class.forName(Unknown Source) ~[?:?]
	at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:190) ~[?:?]
	at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:148) ~[?:?]
	at net.sf.jasperreports.charts.fill.JRFillChart.createAndInitCustomizer(JRFillChart.java:343) ~[?:?]
	at net.sf.jasperreports.charts.fill.JRFillChart.<init>(JRFillChart.java:296) ~[?:?]
	at net.sf.jasperreports.charts.fill.ChartsFillObjectFactory.visitChart(ChartsFillObjectFactory.java:88) ~[?:?]
	at net.sf.jasperreports.charts.base.JRBaseChart.visit(JRBaseChart.java:602) ~[?:?]
	at net.sf.jasperreports.engine.JRAbstractObjectFactory.getVisitResult(JRAbstractObjectFactory.java:70) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFillElementGroup.<init>(JRFillElementGroup.java:82) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFillElementContainer.<init>(JRFillElementContainer.java:92) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFillBand.<init>(JRFillBand.java:129) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getBand(JRFillObjectFactory.java:453) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFillSection.<init>(JRFillSection.java:74) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getSection(JRFillObjectFactory.java:429) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:286) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:82) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFillSubreport.initSubreportFiller(JRFillSubreport.java:641) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:544) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:361) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:283) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:530) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2614) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:837) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:276) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:119) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:625) ~[?:?]
	at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:435) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:163) ~[?:?]
	at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:146) ~[?:?]
	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:757) ~[?:?]
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:1073) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportRunner.getJasperPrint(JasperReportRunner.java:629) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportRunner.getJasperPrint(JasperReportRunner.java:130) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportsProvider.runReport(JasperReportsProvider.java:525) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:403) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:279) ~[?:?]
	at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:222) ~[?:?]
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) ~[?:?]
	at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
	at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:227) ~[?:?]
	at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:284) ~[?:?]
	at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1904) ~[?:?]
	at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:1078) ~[?:?]
	at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:87) ~[?:?]
	at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:383) ~[?:?]
	at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:4023) ~[?:?]
	at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:85) ~[?:?]
	at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:736) ~[?:?]
	at com.servoy.j2db.debug.RemoteDebugScriptEngine.executeFunction(RemoteDebugScriptEngine.java:386) ~[?:?]
	at com.servoy.j2db.server.ngclient.DataAdapterList.executeInlineScript(DataAdapterList.java:267) ~[?:?]
	at com.servoy.j2db.server.ngclient.NGFormServiceHandler.executeMethod(NGFormServiceHandler.java:217) ~[?:?]
	at org.sablo.websocket.WebsocketEndpoint$5.run(WebsocketEndpoint.java:420) ~[?:?]
	at org.sablo.eventthread.Event$1.run(Event.java:97) ~[?:?]
	at org.sablo.websocket.CurrentWindow.runForWindow(CurrentWindow.java:80) ~[?:?]
	at org.sablo.eventthread.Event.execute(Event.java:87) ~[?:?]
	at org.sablo.eventthread.EventDispatcher.dispatch(EventDispatcher.java:144) ~[?:?]
	at org.sablo.eventthread.EventDispatcher.run(EventDispatcher.java:90) ~[?:?]
	at com.servoy.j2db.server.ngclient.eventthread.NGEventDispatcher.run(NGEventDispatcher.java:60) ~[?:?]
	at java.base/java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.lang.ClassNotFoundException: net.sf.jasperreports.engine.JRChartCustomizer
	at java.base/java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
	... 71 more

The previous version (that I used) jasperreports-6.19.1.jar has the “net/sf/jasperreports/engine/JRChartCustomizer” class, but the jasperreports-7.0.1.jar doesn’t. I haven’t been able to find any references to this anywhere.

Are chart customizers still supported?

Marc helped me figure out what the problem was with hte JasperReports plugin. Turned out to be an older version of JasperReports that had accidentally been dropped in the Adobe_pdf_forms folder.

I’m getting frustrated with this same error: ERROR com.servoy.j2db.util.Debug - TypeError: Cannot call method “runReport” of undefined

This is a very simple solution that was updated to Servoy 2024.12 and was working fine, until a change was needed in a report. After the change this error appeared…
After reading this case I updated the Jasper Reports plugin and also the Jaspersoft Studio but I can not solve the problem.

Regards,

Juan

You need to check the logs, because the plugin is really not there. I guess you only get this when deployed? Are you sure the Jasper plugin is exported?
If so then it just doesn’t load and bombs out because of some reason.

Hi Johan,
I am in the Developer.
Regards,
Juan

Then you really check your servoy and developer log files. Check your installation

There are a lot of users that don’t have any problems using Jasper in the latest releases of servoy (with the latest releases of jasper also)

Hi Juan, check all folders of your plugins subfolder for any old versions of the JasperSoft plugin. If you find any remove them and make sure the latest jasperSoft plugin is the only one Servoy can find. Also make sure that you are only referencing plugins.jasperReports.runReport from your code and not the old plugins.jasperPluginRMI.runReport.

Hi Omar,

I have Servoy 2024.12 and now JasperPlugin 6.21.0.
I used to use plugins.jasperReports.runReport but with this plugin I needed to change to plugins.jasperPluginRMI.runReport

Regards,

Juan

Hi Juan,

I believe Servoy 2024.12 requires you to update to Servoy JasperReports Plugin 2024.12.0_7.0.1 (Release Servoy JasperReports Plugin 2024.12.0_7.0.1 · Servoy/servoy_jasperreports · GitHub) and that requires plugins.jasperReports.runReport syntax. Version 6.21 is probably the version of JasperSoft Studio? I updated that to 7.0.1. but that is optional I think.

Award for Omar :sports_medal:

It is working now with Plugin 2024.12.0_7.0.1

Thank you!

Juan