Why am I getting an Exception java.lang.NoClassDefFoundError org / codehaus / groovy /?

I just tried Jasper Report, I follow the manual of this site

I also downloaded the original sample, then ran it and did not receive an error. But when I create my own report using iReport , compile it and add the .jasper file to my project. When I run my program, exception :

 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 is my button action for displaying the report (this is just a sample, the report just contains one text with the 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 this is a dependency problem, I imported all the necessary jar into my project, when I use the .jasper file from this tutorial, no problem, is it because of another version of iReport , otherwise?

+6
source share
6 answers

You need an extra Jar package using the CallSiteArray class.

http://groovy.codehaus.org/Download

+2
source

Alternatively, you can modify the .jrxml file, find

 language="groovy" 

and change it to

 language="java" 
+15
source

This may be due to version mismatch. If you want to know which version of Groovy you need, you can just look at the Maven repository for Jasper:

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

Here you can see what you need Groovy 1.7.5 for Jasper 4.6.0

+8
source

I had the same problem when using Jasper iReport Tool 5.6.0, I had a language like Java, and in the right jasper report library I dropped to iReport Tool 5.1.0 and it worked like a charm ... I hope that the status remains therefore ..

0
source

No need to change libraries. In the case of Ireport 5.X, you can change it in the language section of the main report properties. Just change the value from groovy to java and the reports will not throw any errors.

0
source

SIMPLE ANSWER

STEPS:

1 Select your root folder ie report1.jsxml from Report Inspector ( Windows-> Report Inspector ) 2 Go to the Properties tab and click the Language tab , then Select JAVA

Compile and view your application ...

Do the same for the sub-resources. Also...

0
source

Source: https://habr.com/ru/post/921922/


All Articles