Ошибка компиляции JasperReport 4.1.3, созданного из iReport 4.1.3 с Groovy 1.8.1 - PullRequest
0 голосов
/ 05 ноября 2011

Я нахожусь на 64-битной Windows 7, использую JDK 1.6.0_29, groovy 1.8.1 и JasperReports / iReport 4.1.3.

У меня есть следующие jar из дистрибутива JasperReports в моем CLASSPATH:

commons-beanutils-1.8.0.jar, commons-collection-2.1.1.jar, commons-digester-1.7.jar, commons-logging-1.0.4.jar, jasperreports-4.1.3.jar, poi-3.7-20101029.jar

Я также попытался добавить все jar-файлы в дистрибутив $ {JASPER_HOME} / lib на случай, если я пропустил какой-то важный jar.

ДжасперОтчет должен быть сгенерирован с помощью скрипта Groovy.Я создал очень простой отчет с iReport, который содержит только некоторый статический текст в заголовке.Я могу скомпилировать и просмотреть отчет из iReport.

Когда я пытаюсь скомпилировать отчет из сценария:

def jasperReport = JasperCompileManager.compileReport("filename")

Я получаю следующую ошибку:

Caught: java.lang.AbstractMethodError
java.lang.AbstractMethodError
    at net.sf.jasperreports.compilers.JRGroovyCompiler.compileUnits(JRGroovyCompiler.java:96)
    at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:188)
    at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:212)
    at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:145)
    at net.sf.jasperreports.engine.JasperCompileManager$compileReport.call(Unknown Source)
    at wis_validate_environment.run(wis_validate_environment.groovy:58)

Возможно, существует какой-то конфликт между groovy, который использует JasperReports (JRGroovyCompiler? Из стека трассировки), и groovy, который я использую для компиляции отчета?

Ответы [ 2 ]

1 голос
/ 03 февраля 2012

Я обнаружил, что проблема была объяснена здесь:

http://www.mail-archive.com/user@ofbiz.apache.org/msg23404.html

Там, кажетсяЭто может быть проблема с версиями одной из зависимых библиотек, которые использует наш проект и которая конфликтует с groovy.

Вкратце используйте groovy-all.jar или убедитесь, что ваши зависимости соответствуют версиям groovy, которые вы используете.используете.

1 голос
/ 07 ноября 2011

Мне пришлось изменить пару вещей, чтобы решить эту проблему.

Создание отчета с использованием мастера отчетов и настроек по умолчанию создает параметр language = "groovy" в теге jasperReport.Когда я удаляю параметр языка, я больше не получаю упомянутое выше AbstractMethodError.

Мне также нужно было добавить jdt-compiler-3.1.1.jar в мой путь к классам.

...