为什么我会得到Exception java.lang.NoClassDefFoundError org / codehaus / groovy /? [英] Why do I get Exception java.lang.NoClassDefFoundError org/codehaus/groovy/?
问题描述
我刚刚尝试了Jasper Report,我正在按照本网站
我也下载了示例源,然后运行它并没有发生错误。但是,当我使用 iReport
创建自己的报表时,编译它并将 .jasper
文件添加到我的项目中。
线程中的异常 AWT-EventQueue-0java.lang.NoClassDefFoundError:org / codehaus / groovy / runtime / callsite / CallSiteArray
at report2_1343895135169_749208。$ getCallSiteArray(calculator_report2_1343895135169_749208)$ b $ < init>(calculator_report2_1343895135169_749208)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
。在java.lang.reflect.Constructor.newInstance(Constructor.java:513)
。在java.lang.Class.newInstance0(类.java:355)
在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)
在net.sf.jasperreports.engine.JasperCompileManager.getEvaluator(JasperCompileManager.java:265)
在net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:457)
在净.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)在net.s
在net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:634)
处的net.sf.jasperreports处的
(f.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:653)。 engine.JasperFillManager.fillReport(JasperFillManager.java:956)
在View.MainGUI.btnExportActionPerformed(MainGUI.java:871)
在View.MainGUI.access $ 800(MainGUI.java:50)
。在View.MainGUI $ 10.actionPerformed(MainGUI.java:541)
在javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
在javax.swing.AbstractButton中的$ Handler.actionPerformed(AbstractButton中的.java:2318)
在javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
在javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
。在使用javax。 swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.pr在java.awt.Component.processEvent(Component.java:6032)
(java.awt.Container.processEvent(Container.java:2041)
java.awt.Component.dispatchEventImpl(Component.java:4630)$ b $在java.awt.Container.dispatchEventImpl(Container.java:2099)
在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)
。在java.awt.Component.dispatchEvent(Component.java:4460)
在java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
在java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread .java:269)在java.awt.E处
ventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
在java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)在java.awt.EventDispatchThread.pumpEvents
(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
导致:java.lang.ClassNotFoundException:org .codehaus.groovy.runtime.callsite.CallSiteArray $ java.util.ClassLoader.findClass(ClassLoader.java:359)$ b $ java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 50 more
这里是我的用于显示报表的按钮动作(这只是示例,报表只包含一个带有参数:outputText的文本):
Map params = new HashMap();
params.put(outputText,Hello world);
尝试{
JasperPrint printer = JasperFillManager.fillReport(getClass()。getResourceAsStream(report2.jasper),params,new JREmptyDataSource());
JasperViewer jv =新JasperViewer(打印机);
jv.show();
} catch(JRException ex){
ex.printStackTrace();如果它是依赖项
$>问题,当我使用该教程中的 .jasper
文件时,我已经将所有需要的jar导入到我的项目中,这没有问题,是否因为 iReport
或者其他? 解决方案您需要额外的使用CallSiteArray类的Jar包。 a href =http://groovy.codehaus.org/Download =nofollow> http://groovy.codehaus.org/Download
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?
解决方案 You need additional Jar package using CallSiteArray class.
http://groovy.codehaus.org/Download
这篇关于为什么我会得到Exception java.lang.NoClassDefFoundError org / codehaus / groovy /?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!