#java.lang.NoClassDefFoundError:org / apache / commons / digester / Digester

时间:2015-02-16 12:59:00

标签: java jasper-reports classpath noclassdeffounderror

我到了 java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester错误,我误解了这个错误超过一个月。我已经尝试了所有可用的Digester版本,并且还在类路径中检查了重复的JAR。

我通过iReport-5.6.0设计了报告,并使用了JAR iReport-5.6.0\ireport\modules\ext和其他必需的JAR。

错误日志:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester
    at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:108)
    at net.sf.dynamicreports.examples.JasperMongoDBConnection.main(JasperMongoDBConnection.java:30)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Digester
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 2 more

1 个答案:

答案 0 :(得分:7)

如果抛出NoClassDefFoundError,你应该检查所需的jar是否在类路径中正确加载,或者你是混合版本和类名可能是不同的(或它的行为)。 检查你要添加的Digester罐子是否是需要的。

检查这些罐子是否正确装载:

jasperreports-.jar;
jasperreports-javaflow.jar;
commons-beanutils.jar;
commons-collections.jar;
commons-logging.jar;
commons-digester.jar

查看eclipse实例下的jasper report plugin文件夹。在此文件夹中搜索commons digester jar并在项目中复制相同的jar(以及列出的其他jar)。