So I've done a lot of fruitless Googling/and Stack-exploring over the past week or so and still can't get my first .jrxml filled with data and converted into a .pdf... I'd really appreciate it if you could help me out with a significant amount of hand-holding.
- First, I used JasperSoft 6.3 to design the template. Unfortunately it doesn't have compile functionality.
Compiling my .jrxml with Ant + Ivy gives me 3 errors all relating to an obscure directory called mondrian, specifically:
tuples[idx] = new JRMondrianTuple(position, factory); class file for Position not found hierarchies[i] = new JRMondrianHierarchy(axisHierarchies[i]); class file for Hierarchy not found mondrianMember = new JRMondrianMember(member, this); class file for Member not found
Each of which is preceded by something like:
C:\jasperreports-6.3.0\src\net\sf\jasperreports\olap\mondrian\JR...java:...:
The build file is:
<project name="aaa" default="test" basedir="."> <property name="sample.dir" value="aaa"/> <property name="sample.base.name" value="aaa"/> <property name="sample.app.name" value="${sample.base.name}App"/> <property name="sample.report.name" value="reportDesign.jrxml" /> <target name="javac"> <ant dir="../" target="javac"/> </target> <target name="compile"> <ant dir="../" target="compile"/> </target> <target name="test" > <echo message="==================================="/> <antcall target="javac" /> <antcall target="compile" /> <ant dir="../" target="test"/> </target> </project>
Meanwhile, compiling programmatically using the following:
try { JasperCompileManager.compileReportToFile(".reportDesign.jrxml","compiledReport.jasper"); System.out.println("Done!"); } catch (JRException e) { e.printStackTrace(); }
Gives me errors (NoClassDefFoundError) which adding external JARs should have fixed but didn't.
Filling report...
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ReferenceMap
at net.sf.jasperreports.engine.component.ComponentsEnvironment.<init>(ComponentsEnvironment.java:56)
at net.sf.jasperreports.engine.component.ComponentsEnvironment.getInstance(ComponentsEnvironment.java:76)
at net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.getSchemaLocations(JRReportSaxParserFactory.java:93)
at net.sf.jasperreports.engine.xml.BaseSaxParserFactory.configureParser(BaseSaxParserFactory.java:153)
at net.sf.jasperreports.engine.xml.BaseSaxParserFactory.createParser(BaseSaxParserFactory.java:108)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createParser(JRXmlDigesterFactory.java:1580)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createDigester(JRXmlDigesterFactory.java:1549)
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.compileToFile(JasperCompileManager.java:253)
at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:554)
at Main.main(Main.java:20)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.map.ReferenceMap
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 14 more