2

我会尝试在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-all-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-plugin-2.3.1.1.jar
  • struts2-jquery-chart-plugin-3.3.1.jar
4

3 回答 3

6

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

于 2015-04-30T16:21:01.577 回答
2

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

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

不要忘记保存和编译。

于 2018-09-04T12:28:13.503 回答
1

当您的 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;
        }
    
于 2020-07-07T13:49:19.570 回答