JasperReports: no se encontró la función CONCATENAR

Estoy desarrollando algunos informes con Jaspersoft Studio .
Tengo una aplicación web que debería aceptar consultas REST y convertirlas en informes comstackdos.
Así que tengo algunos de los jar JasperReports incluidos:

  • groovy-all-2.0.1.jar
  • iText-2.1.7.js2.jar
  • jasperreports-5.2.0.jar

El problema es que cuando compilo mi informe y lo ejecuto desde Jaspersoft Studio , funciona bien.
Pero cuando lo compilo y lo ejecuto desde mi aplicación web, arroja la excepción:

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 

Cuando cambio mi llamada CONCATENATE en el informe, funciona bien.

Entonces, esto me deja con la solución de que me falta una de las jarras JasperReports , ¿pero cuál?

También debe agregar jasperreports-functions-5.2.0.jar a su classpath.

Esta biblioteca contiene la clase net.sf.jasperreports.functions.standard.TextFunctions con la función CONCATENATE .

Puede encontrar este artefacto en http://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releases Repositorio de Maven .

El fragmento de mi prueba 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   

El net.sf.jasperreports.jasperreports-functions: 5.2.0 artefacto depende de joda-time.joda-time: 2.1 artefacto: también debe agregar classpath al joda-time-2.1.jar


Notas:

Puede encontrar más información en Funciones personalizadas en el artículo Expresiones de informe