2015-05-23 12 views
7

Nonostante la domanda posta in precedenza, non riesco a risolvere il problema usandoli. Attualmente sto provando a generare file pdf usando il report jasper. Tuttavia, ottengo sempre un'eccezione relativa alle dipendenze jar. Nonostante, aggiungo seguente file vasetti nel mio percorso di generazione,Jasper Java Compile NoClassFound Exception

  • jasperreports-6.0.4.jar
  • commons-logging-1.2.jar
  • Commons-beanutils-1.9.2.jar
  • JasperReports-javaflow-6.0.4.jar
  • commons.digester3-3.2.jar
  • commons-collections4-4.0.jar

il programma genera l'eccezione di classe non trovata o correlata alle raccolte. Il mio obiettivo principale è utilizzare il file jrxml per generare un pdf. Sto usando iReport 5.6.0 per generare il file jrxml. Qualsiasi aiuto è apprezzato. La traccia di errore Stack è sotto;

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

È necessario eseguire commons-collections versione 3.2.1. Probabilmente di [questo post] [1]. [1]: http://stackoverflow.com/questions/22847455/java-lang-noclassdeffounderror-org-apache-commons-collections-referencemap – javabrett

risposta

11

Sono riuscito a risolvere il problema e voglio condividere la risposta per aiutare la comunità. Le dipendenze jar possono essere raccolte tramite il pom.xml. Tuttavia, il modo semplice si basa sulla cartella installata di iReport (versione generata da jrxml). C'è una cartella nella posizione Jaspersoft \ iReport-x.x.x \ ireport \ modules \ ext (dipende dal sistema operativo). Puoi ottenere i seguenti file jar da lì;

  • jasperreportsXX.jar
  • commons-loggingXX.jar
  • commons-beanutilsXX.jar
  • commons.digesterXX.jar
  • commons-collectionsXX.jar
  • iTextXX.jar
  • jtd-compilerXX.jar
  • groovy-allXX.jar

Quindi tutti i problemi sono finiti. Spero che questo aiuti l'utente che incontra il problema.

Saluti.