2015-05-23 2 views
7

Несмотря на заданный вопрос, я не могу решить проблему, используя их. В настоящее время я пытаюсь создать файл pdf с помощью отчета jasper. Однако Я всегда получаю исключение, связанное с зависимостями jar. Несмотря на, я добавляю следующие банки файл в мой путь сборки,Jasper Java Compile NoClassFound Exception

  • JasperReports-6.0.4.jar
  • Обще-каротаж 1.2.jar
  • Викисклада BeanUtils-1.9.2.jar
  • JasperReports-javaflow-6.0.4.jar
  • commons.digester3-3.2.jar
  • Обще-collections4-4.0.jar

программа генерирует исключение класса, не найденное, связанное с коллекциями. Моя основная цель - использование файла jrxml для генерации pdf. Я использую iReport 5.6.0 для генерации файла jrxml. Любая помощь приветствуется. След ошибки стека ниже;

Generating PDF... 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ReferenceMap 
    at net.sf.jasperreports.engine.component.ComponentsEnvironment.<init>(ComponentsEnvironment.java:57) 
    at net.sf.jasperreports.engine.component.ComponentsEnvironment.getInstance(ComponentsEnvironment.java:86) 
    at net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.getSchemaLocations(JRReportSaxParserFactory.java:99) 
    at net.sf.jasperreports.engine.xml.BaseSaxParserFactory.configureParser(BaseSaxParserFactory.java:162) 
    at net.sf.jasperreports.engine.xml.BaseSaxParserFactory.createParser(BaseSaxParserFactory.java:117) 
    at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createParser(JRXmlDigesterFactory.java:1572) 
    at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createDigester(JRXmlDigesterFactory.java:1541) 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:263) 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:219) 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:194) 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:185) 
    at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:288) 
    at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:575) 
    at com.tutorialsdojo.jasper.HelloJasper.main(HelloJasper.java:13) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.map.ReferenceMap 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 14 more 
+0

Вам необходимо запустить коллекцию коллекций версии 3.2.1. Вероятно, [этот пост] [1]. [1]: http://stackoverflow.com/questions/22847455/java-lang-noclassdeffounderror-org-apache-commons-collections-referencemap – javabrett

ответ

11

Мне удается решить проблему, и я хочу поделиться им, чтобы помочь сообществу. Зависимости jar могут быть собраны через pom.xml. Однако простой способ зависит от установленной папки iReport (jrxml сгенерированной версии). В папке находится Jaspersoft \ iReport-x.x.x \ ireport \ modules \ ext (зависит от ОС). Оттуда вы можете получить следующие файлы jar;

  • jasperreportsXX.jar
  • Обще-loggingXX.jar
  • Обще-beanutilsXX.jar
  • commons.digesterXX.jar
  • Обще-collectionsXX.jar
  • iTextXX.jar
  • jtd-compilerXX.jar
  • groovy-allXX.jar

Затем все проблемы исчезли. Надеюсь, это поможет другому пользователю, который отвечает этой проблеме.

С уважением.