JasperReports: la funzione CONCATENATE non è stata trovata

Sto sviluppando alcuni rapporti con Jaspersoft Studio .
Ho un’app Web che dovrebbe accettare le query REST e trasformarle in rapporti compilati.
Quindi ho alcuni dei vasi JasperReports inclusi:

  • Groovy-all-2.0.1.jar
  • iText-2.1.7.js2.jar
  • JasperReports-5.2.0.jar

Il problema è che quando compilo il mio report ed eseguo da Jaspersoft Studio , funziona perfettamente.
Ma quando lo compilo e lo eseguo dalla mia web app, lancia l’eccezione:

net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : Source text : CONCATENATE($V{startString}, " - ", $V{endString}) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:244) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:591) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:559) ... Caused by: net.sf.jasperreports.engine.JRRuntimeException: Function CONCATENATE not found 

Quando cambio la mia chiamata di CONCATENATE nel rapporto funziona correttamente.

Quindi questo mi lascia con una soluzione che mi manca uno dei barattoli JasperReports , ma quale?

Dovresti anche aggiungere jasperreports-functions-5.2.0.jar al classpath.

Questa libreria contiene la class net.sf.jasperreports.functions.standard.TextFunctions con la funzione CONCATENATE .

Puoi trovare questo artefatto su http://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releases Archivio Maven .

Lo snippet del mio test pom.xml :

   jr-ce-releases http://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releases     net.sf.jasperreports jasperreports 5.2.0   org.codehaus.groovy groovy-all 2.0.1   net.sf.jasperreports jasperreports-functions 5.2.0   joda-time joda-time 2.1   

Le funzioni net.sf.jasperreports.jasperreports: artefatto 5.2.0 dipende da joda-time.joda-time: 2.1 artefatto – è necessario aggiungere anche a classpath joda-time-2.1.jar


Gli appunti:

Puoi trovare ulteriori informazioni in Funzioni personalizzate nell’articolo Report Express