JasperReport计算表达式时出错:源文本:new java.lang.Integer(1)
我正在使用JasperSoft Studio 5.1.0创建报告。这是我到目前为止用过的图书馆JasperReport计算表达式时出错:源文本:new java.lang.Integer(1),java,jasper-reports,Java,Jasper Reports,我正在使用JasperSoft Studio 5.1.0创建报告。这是我到目前为止用过的图书馆 commons-beanutils-1.8.3.jar commons-collections.jar commons-digester-1.7.jar commons-javaflow-20060411.jar commons-logging-1.1.3.jar groovy-all-1.7.5.jar itext-2.1.7.jar jasperreports-5.1.0.jar 我尝试使用参
- commons-beanutils-1.8.3.jar commons-collections.jar commons-digester-1.7.jar commons-javaflow-20060411.jar commons-logging-1.1.3.jar groovy-all-1.7.5.jar itext-2.1.7.jar jasperreports-5.1.0.jar
try
{
String NamaFile = "src/Laporan Penawaran.jasper";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection konek = Koneksi.getKoneksi();
HashMap hash = new HashMap();
hash.put("param1",no_tender.getText());
File file = new File(NamaFile);
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(file.getPath());
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hash,konek);
JasperViewer.viewReport(jasperPrint);
} catch(Exception ex) {
System.out.println(ex);
}
我只是想知道也许我的jasper文件是错误的,但是当我试图删除所有字段并且只使用静态文本时,错误仍然存在。我该怎么办 我只是想将groovy all更新到版本2。在那之后就没有任何问题了,工作也很顺利:)
注意:请确保为每个库使用特定的版本,不知何故,新版本并不总是与您的报告相匹配。下面是我能够识别问题的整个堆栈跟踪。
net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :
Source text : new java.lang.Integer(1)
at net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:782)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:331)
at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:384)
at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:358)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBandNoOverflow(JRVerticalFiller.java:458)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnHeader(JRVerticalFiller.java:502)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:284)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:151)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:932)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:845)
at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:651)
at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59)
at net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner.run(AbstractThreadSubreportRunner.java:203)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :
Source text : new java.lang.Integer(1)
at net.sf.jasperreports.engine.fill.JREvaluator.evaluateEstimated(JREvaluator.java:308)
at net.sf.jasperreports.engine.fill.JRCalculator.evaluateEstimated(JRCalculator.java:582)
at net.sf.jasperreports.engine.fill.JRCalculator.estimateVariables(JRCalculator.java:181)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1234)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1208)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1577)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:149)
... 8 more
Caused by: java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/BytecodeInterface8
at ReconciliationDetail_UnclearedTxn_ChecksAndPayments_Count_1450338812203_279237.evaluateEstimated(calculator_ReconciliationDetail_UnclearedTxn_ChecksAndPayments_Count_1450338812203_279237:272)
at net.sf.jasperreports.engine.fill.JREvaluator.evaluateEstimated(JREvaluator.java:295)
... 14 more
**Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.BytecodeInterface8**
at java.lang.ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 16 more
修复对我有效
- 我已将所有报表/子报表语言属性从
更新为“groovy”
,并且已修复李>“Java”
- 虽然这看起来像是一种解决方法,但我建议更新库,其中将包含
jasperreports-5.1.2.jar中缺少的类
我将字段类型从java.math.biginger更改为java.math.BigDecimal您应该发布jrxml文件
org.codehaus.groovy.runtime.BytecodeInterface8
不在jasperreport jar中,而是在groovy jar中(包含在jasper报告分发文件夹lib中),如果您使用language=“groovy”,这个jar需要在类路径中感谢@PetterFriberg注意到我没有提到我的进一步发现。实际上,它在我们的应用程序中使用了groovy-all-1.7.5.jar,该应用程序不包含bytecodeinterface类8[更新groovy-all-version 2可以像@kripton-haz提到的那样工作。