9

I've just try Jasper Report, I'm following tutorial from this site

Also I downloaded the sample source then run it and got no error. But when I create my own report using iReport, compile it, and add the .jasper file to my project. There is exception when I run my program:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/callsite/CallSiteArray
    at report2_1343895135169_749208.$createCallSiteArray(calculator_report2_1343895135169_749208)
    at report2_1343895135169_749208.$getCallSiteArray(calculator_report2_1343895135169_749208)
    at report2_1343895135169_749208.<init>(calculator_report2_1343895135169_749208)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at net.sf.jasperreports.engine.design.JRAbstractJavaCompiler.loadEvaluator(JRAbstractJavaCompiler.java:112)
    at net.sf.jasperreports.engine.design.JRAbstractCompiler.loadEvaluator(JRAbstractCompiler.java:333)
    at net.sf.jasperreports.engine.JasperCompileManager.getEvaluator(JasperCompileManager.java:265)
    at net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:457)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:379)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)
    at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153)
    at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:82)
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:653)
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:634)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:956)
    at View.MainGUI.btnExportActionPerformed(MainGUI.java:871)
    at View.MainGUI.access$800(MainGUI.java:50)
    at View.MainGUI$10.actionPerformed(MainGUI.java:541)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6267)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6032)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.callsite.CallSiteArray
    at java.lang.ClassLoader.findClass(ClassLoader.java:359)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    ... 50 more

Here my button action for displaying the report (this is just sample, the report just contain one text with parameter: outputText):

Map params = new HashMap();
params.put("outputText", "Hello world");
try {
        JasperPrint printer = JasperFillManager.fillReport(getClass().getResourceAsStream("report2.jasper"), params, new JREmptyDataSource());
        JasperViewer jv = new JasperViewer(printer);
        jv.show();
    } catch (JRException ex) {
        ex.printStackTrace();
    }

If it's dependency problem, I've imported all the required jar to my project, when I use .jasper file from that tutorial there is no problem, is it because of the different version of iReport or else?

Petter Friberg
  • 21,252
  • 9
  • 60
  • 109
Fahmi Ramadhan
  • 287
  • 2
  • 4
  • 11
  • 1
    do you have the jar **groovy** included in your classpath? See [Groovy](http://groovy.codehaus.org/Download) – M. Abbas Aug 02 '12 at 08:39
  • yes, I've groovy-all-1.5.5.jar and [Jasper documentation](http://jasperforge.org/projects/jasperreports) say that minimum requirement is groovy-all-1.5.5.jar but it comes to that exception, when I use groovy-2.0.1.jar it solved – Fahmi Ramadhan Aug 02 '12 at 08:48
  • possible duplicate of [NetBeans:JasperReport Exception](http://stackoverflow.com/questions/1576532/netbeansjasperreport-exception) & [Jasper report working fine in netbeans but gives exception when deployed as jar application](http://stackoverflow.com/questions/4233310/jasper-report-working-fine-in-netbeans-but-gives-exception-when-deployed-as-jar) – Alex K Aug 02 '12 at 10:01

6 Answers6

20

Alternatively, you can change the .jrxml file, look for

language="groovy"

and change it to

language="java"
Mathias Conradt
  • 28,420
  • 21
  • 138
  • 192
8

It may be because of a version mismatch. If you want to know which version of Groovy you need, you can just look at a Maven Repository for Jasper:

http://mvnrepository.com/artifact/net.sf.jasperreports/jasperreports/4.6.0

From here you can see that you require Groovy 1.7.5 for Jasper 4.6.0

jasop
  • 892
  • 11
  • 13
  • Thanks! This worked for me. I was using Jasper 5.6.0 and I got Groovy 1.7.5 but after checking mvnrepository I realized and change to Groovy 2.0.1. – Rodolfo Velasco Jan 16 '15 at 20:04
4

You need additional Jar package using CallSiteArray class.

http://groovy.codehaus.org/Download

thanksnote
  • 1,012
  • 11
  • 9
0

I had the same issue while using Jasper iReport Tool 5.6.0 i had language as Java, and the right jasper report library I down graded to iReport Tool 5.1.0 and it worked like a charm...hope the status remains so..

0

No need to change the libraries , In case of Ireport 5.X Version you can change it in the language section of the main report properties, Just change from groovy to java and reports wont give any error.

JavaDragon
  • 431
  • 1
  • 6
  • 17
0

SIMPLE ANSWER

STEPS:

1 Select Your Root Folder i.e report1.jsxml from Report Inspector (Windows->Report Inspector) 2 Go to Properties Tab and Click on Language Tab then Select JAVA

Compile and preview your application started ...

Do same for subReports Also...