Java.lang.NoClassDefFoundError: org/Apache/commons/digester/Digester
エラーが発生し、1か月以上このエラーが発生します。利用可能なすべてのDigesterバージョンを試してみました。また、クラスパスでJARの重複がないか確認しました。
私はiReport-5.6.0
を使用してレポートを設計し、iReport-5.6.0\ireport\modules\ext
のJARとその他の必要な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
NoClassDefFoundError
がスローされた場合、必要なjarがクラスパスに適切にロードされていることを確認する必要があります。または、バージョンが混在しており、クラス名が異なる(またはその動作)可能性があります。追加するDigester jarが必要かどうかを確認してください。
これらのjarが正しく読み込まれているかどうかを確認します。
jasperreports-.jar;
jasperreports-javaflow.jar;
commons-beanutils.jar;
commons-collections.jar;
commons-logging.jar;
commons-digester.jar
Eclipseインスタンスの下のjasperレポートプラグインフォルダーを見てください。このフォルダー内でcommonsダイジェスターjarを検索し、同じjar(およびリストされているjarの他のjar)をプロジェクトにコピーします。