我会尝试在 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
答案 0 :(得分:5)
让我解释一下:如果您使用iReport-5.6.0编译jasper报告文件(jrxml),则必须在运行时使用jasperreports-5.6.0.jar ..
答案 1 :(得分:0)
我能够通过以下方式解决此问题:
language="groovy"
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;
}