JasperReports: функция конкатенации не найдена

Я разрабатываю некоторые отчеты с Jaspersoft Studio.
У меня есть веб-приложение, которое должно принимать запросы REST и превращать их в скомпилированные отчеты.
Так что у меня есть некоторые из JasperReports банки входят:

  • groovy-all-2.0.1.Джар
  • iText-2.1.7.СП2.Джар
  • jasperreports-5.2.0.Джар

проблема в том, что когда я компилирую свой отчет и запускаю из Jaspersoft Studio, работает отлично.
Но когда я компилирую и запускаю его из своего веб-приложения, он выдает исключение:

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

когда я меняю свой CONCATENATE вызов в отчете работает нормально.

таким образом, это оставляет меня с решением, что мне не хватает одного из JasperReports банки, но какой?

1 ответов


вы также должны добавить jasperreports-функции-5.2.0.Джар в вашем classpath.

эта библиотека содержит net.научная фантастика.jasperreports.функции.норматив.TextFunctions класс объединения.

вы можете найти этот артефакт в http://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releasesMaven репозитория.

фрагмент из моего теста пом.в XML:

<repositories>
    <repository>
        <id>jr-ce-releases</id>
        <url>http://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releases</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>5.2.0</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>2.0.1</version>
    </dependency>
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports-functions</artifactId>
        <version>5.2.0</version>
    </dependency>
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.1</version>
    </dependency>
</dependencies>

на net.научная фантастика.jasperreports.jasperreports-функции:5.2.0 артефакт зависит от Joda времени.Joda времени:2.1 артефакт-вы также должны добавить в classpath Joda времени-2.1.Джар


Примечания:

вы можете найти более подробную информацию в пользовательские функции в выражениях отчета статьи