找不到GroovyEvaluator

时间:2013-08-05 15:46:47

标签: java struts2 jasper-reports ireport eclipse-juno

我会尝试在 iReport 中执行我的PIE 3D报告,在我的struts.xml中我得到了这个来调用我的报告。

<action name="cargaReporte" 
        class="com.techera.eventos.action.MisVisitasAction" 
        method="cargaReporte">              
    <result name="success" type="jasper">
        <param name="location">/WEB-INF/jsp/reportes/reporteMisVisitas.jasper</param>
        <param name="dataSource">visitas</param>
        <param name="format">PDF</param>
    </result>
</action>

在我的jsp中我得到了这个

<a href="cargaReporte">Reporte</a>

当我点击链接时,错误就是这个

java.lang.ClassNotFoundException: net.sf.jasperreports.compilers.GroovyEvaluator
    at java.lang.ClassLoader.findClass(ClassLoader.java:522)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        ...

有人告诉我我能做错什么吗?

我使用库:

Groovy的全1.7.5.jar

  • iText-2.1.7.jar
  • 的JasperReports-4.5.0.jar
  • jcommon-1.0.15.jar
  • jfreechart的-1.0.12.jar
  • struts2的-JasperReports的-插件-2.3.1.1.jar
  • struts2的-jQuery的图表-插件-3.3.1.jar

3 个答案:

答案 0 :(得分:5)

让我解释一下:如果您使用iReport-5.6.0编译jasper报告文件(jrxml),则必须在运行时使用jasperreports-5.6.0.jar ..

答案 1 :(得分:0)

我能够通过以下方式解决此问题:

  1. 删除language="groovy"
  2. (或)在我的language="groovy"文件中用language="java"替换JRXML

别忘了保存和编译。

答案 2 :(得分:0)

通常在您的ireport和jasper jar版本不同时发生。在这种情况下,请使用Java编译jrxml或您的jar版本类似于ireport

String dir = request.getRealPath("/");
        
        try {
            JasperCompileManager.compileReportToFile(dir+ "/WEB-INF/jasper/SummaryReportExport.jrxml", dir+ "/WEB-INF/jasper/SummaryReportExport.jasper");
       } catch (Exception e) {
            e.printStackTrace();
            return ERROR;
        }