2011-11-05 19 views
0

我在Windows 7 64位,使用JDK 1.6.0_29,groovy 1.8.1和JasperReports/iReport 4.1.3。錯誤編譯從iReport 4.1.3創建的JasperReport 4.1.3與Groovy 1.8.1

我從我的CLASSPATH JasperReports的分佈如下jar文件:

公地的BeanUtils-1.8.0.jar,commons-collections提供-2.1.1.jar,公共沼氣池-1.7.jar,公地-logging-1.0.4.jar,jasperreports-4.1.3.jar,poi-3.7-20101029.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) 

是否有可能在常規之間的一些衝突JasperReports的使用(JRGroovyCompiler?來自stacktrace)以及我用來編譯報表的常規?

+0

可能是你應該嘗試另一個常規版本。 JR 4.1.3從pom.xml中使用Groovy 1.7.5 –

+0

相關性: \t \t \t org.codehaus.groovy \t \t \t Groovy的所有 \t \t \t 1.7。5 \t \t \t 編譯 \t \t \t 真正 \t \t

+0

我會嘗試看看,如果這個工程。這將是一個問題,因爲我無法在服務器環境中安裝另一個版本的groovy。謝謝。 –

回答

1

爲解決此問題,我必須更改幾件事情。

使用報告嚮導和默認設置創建報告會在jasperReport標記中創建language =「groovy」參數。當我刪除語言參數時,我不再得到上面提到的AbstractMethodError。

我還需要在我的類路徑中添加jdt-compiler-3.1.1.jar。

+0

好的解決方案。順便說一下,「刪除語言參數」與「將語言從'Groovy'改爲'Java'」是一回事。 – mdahlman

1

我發現這個問題是在這裏解釋說:

http://www.mail-archive.com/[email protected]/msg23404.html

似乎與我們的項目使用的依賴庫之一的版本中的問題,與常規的衝突。

簡而言之,請使用groovy-all.jar或確保您的依賴項與您正在使用的groovy版本匹配。

相關問題