Jasper Java Compile NoClassFound Exception

我们两清 提交于 2019-12-07 00:39:39

问题


Despite the question asked before, I cannot solve the problem by using them. I am currently trying to generate pdf file via using the jasper report.However, I always get an exception related with the jar dependencies. Despite, I add following jars file into my build path,

  • 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

program generates me class not found exception either related with collections. My main goal is via using jrxml file generate a pdf. I am using iReport 5.6.0 to generate jrxml file. Any help is appreciated. The Stack trace of error is below;

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

回答1:


I manage to solve problem and I want to share the answer in order to help the community. The jar dependencies can be gathered via the pom.xml. However, the easy way relies on the iReport (jrxml generated version) installed folder. There is a folder in the location Jaspersoft\iReport-x.x.x\ireport\modules\ext (depends on OS). You can get the following jar files from there;

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

Then all problems are gone. Hope this helps to other user who meets the problem.

Regards.



来源:https://stackoverflow.com/questions/30412357/jasper-java-compile-noclassfound-exception

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!