2013-08-05 2 views
1

Я использую JasperSoft Studio 5.1.0 для создания моего отчета. Это библиотека, я использовал до сих порJasperReport Ошибка вычисления выражения: Исходный текст: новый java.lang.Integer (1)

  • Викисклада BeanUtils-1.8.3.jar Викисклада collections.jar Обще-варочного-1.7.jar Викисклада javaflow-20060411.jar Викисклада лесозаготовительной-1.1.3 .jar заводной-все-1.7.5.jar IText-2.1.7.jar JasperReports-5.1.0.jar

Я пытаюсь с помощью параметра, и это не показывает какую-либо ошибку, когда я вижу превью на JasperSoft Studio, но когда я пытаюсь выполнить печать с моей программы Java, отображается такая ошибка:

net.sf.jasperreports.engine.fill.JRExpressionEvalException: Ошибка вычисления выражения: Исходный текст: новый java.lang.Integer (1)

код я использую на моей программе действий выполняется, как это

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); 
} 

Я просто интересно, может быть, мой файл яшма ошибка, но когда я пытаюсь стереть все поля и использование только статического текста ошибка все еще существует. Что я должен сделать?

+1

Вы должны опубликовать * jrxml файла * –

ответ

1

хорошо я просто пытаюсь обновить заводной-все версии 2. И после того, что нет никаких проблем и работает гладко :)

Примечание: убедитесь, что вы используете определенную версию для каждой библиотеки, как-то новый, это не всегда соответствует вашему отчету

-1

Ниже приведена целая трассировка стека, с помощью которой я смог идентифицировать проблему.

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 

FIX Работал для меня

  • Я обновил все отчеты/Subreports язык свойство от "groovy" к "Java" и это исправлено.
  • Хотя это похоже на обходное решение, я предлагаю обновить библиотеку, которая будет включать недостающий класс в jasperreports-5.1.2.jar.
+0

Параметр 'org.codehaus.groovy.runtime. BytecodeInterface8' не находится в jasperreport jar, но в groovy jar (входит в дистрибутив libas libs jasper), эта банка должна быть в пути к классам, если вы используете язык = «groovy» –

+0

Спасибо @PetterFriberg за то, что заметили, что я пропустил упоминание мои дальнейшие выводы. На самом деле он использует groovy-all-1.7.5.jar в нашем приложении, которое не содержит класс BytecodeInterface8 [http://mvnrepository.com/artifact/org.codehaus.groovy/groovy-all/1.7.5] – Squid

+0

Обновление groovy -все версия 2 будет работать, как упоминалось в @ kripton-haz. – Squid

0

FIX для меня: я изменил тип полей от java.math.BigInteger к java.math.BigDecimal

Смежные вопросы