为什么我会得到Exception java.lang.NoClassDefFoundError org / codehaus / groovy /? [英] Why do I get Exception java.lang.NoClassDefFoundError org/codehaus/groovy/?

查看:112
本文介绍了为什么我会得到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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆