haisureshbabu Posted April 10, 2009 Share Posted April 10, 2009 Hi,Iam able to compile "test.jrxml" file using the statement JasperCompileManager.compileReportToFile(reportFile.getPath(),"abc.jasper");While filling this report usingJasperPrint jasperPrint = JasperFillManager.fillReport("abc.jasper", map, dataSource); getting the following error which is in BoldPlease find my code given in the code part [java] net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : Number [java] at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:127) [java] at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:100) [java] at net.sf.jasperreports.engine.data.JRBeanArrayDataSource.getFieldValue(JRBeanArrayDataSource.java:90) [java] at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:799) [java] at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:763) [java] at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1402) [java] at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:111) [java] at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:888) [java] at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:810) [java] at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89) [java] at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601) [java] at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517) [java] at TestReport.main(TestReport.java:63) [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [java] at java.lang.reflect.Method.invoke(Method.java:585) [java] at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:193) [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:130) [java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:705) [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:177) [java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:83) [java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [java] at org.apache.tools.ant.Task.perform(Task.java:364) [java] at org.apache.tools.ant.Target.execute(Target.java:341) [java] at org.apache.tools.ant.Target.performTasks(Target.java:369) [java] at org.apache.tools.ant.Project.executeTarget(Project.java:1214) [java] at org.apache.tools.ant.Project.executeTargets(Project.java:1062) [java] at org.apache.tools.ant.Main.runBuild(Main.java:673) [java] at org.apache.tools.ant.Main.startAnt(Main.java:188) [java] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196) [java] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55) [java] Caused by: java.lang.NoSuchMethodException: Unknown property 'Number' [java] at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122) [java] at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686) [java] at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715) [java] at org.apache.commons.beanutils.PropertyUtils.getProperty(Proper Code:test.jrxml is as follows<?xml version="1.0"?><jasperReport name="PdfEncryptReport" ><field name="Number" class="java.lang.String"/><field name="Name" class="java.lang.String"/><field name="Sal" class="java.lang.String"/><field name="Age" class="java.lang.String"/> <detail><band height="30"><textField><reportElement x="0" y="0" width="69" height="24"/><textFieldExpression class="java.lang.String"><![CDATA[$F{Number}]]></textFieldExpression></textField><textField><reportElement x="140" y="0" width="69" height="24"/><textFieldExpression class="java.lang.String"><![CDATA[$F{Name}]]></textFieldExpression></textField><textField><reportElement x="280" y="0" width="69" height="24"/><textFieldExpression class="java.lang.String"><![CDATA[$F{Sal}]]></textFieldExpression></textField><textField><reportElement x="420" y="0" width="69" height="24"/><textFieldExpression class="java.lang.String"><![CDATA[$F{Age}]]></textFieldExpression></textField></band></detail></jasperReport>************************************************************************TestReport.javaimport java.io.File;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.sql.*;import net.sf.jasperreports.engine.JRException;import net.sf.jasperreports.engine.JRExporterParameter;import net.sf.jasperreports.engine.JRParameter;import net.sf.jasperreports.engine.JasperCompileManager;import net.sf.jasperreports.engine.JasperExportManager;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import net.sf.jasperreports.engine.JasperPrintManager;import net.sf.jasperreports.engine.JasperRunManager;import net.sf.jasperreports.engine.export.JExcelApiExporter;import net.sf.jasperreports.engine.export.JRCsvExporter;import net.sf.jasperreports.engine.export.JRRtfExporter;import net.sf.jasperreports.engine.export.JRXlsExporter;import net.sf.jasperreports.engine.export.JRXlsExporterParameter;import net.sf.jasperreports.engine.export.oasis.JROdtExporter;import net.sf.jasperreports.engine.query.JRHibernateQueryExecuterFactory;import net.sf.jasperreports.engine.util.JRLoader;import net.sf.jasperreports.engine.JasperReport;import net.sf.jasperreports.engine.*;import net.sf.jasperreports.view.*;import com.home.Singer;import net.sf.jasperreports.engine.data.JRBeanArrayDataSource;import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;import net.sf.jasperreports.engine.JasperManager;public class TestReport { public static void main(String [] a ) { try { HashMap map= new HashMap(); ArrayList list = new ArrayList(); Singer[] reportRows = new Singer[4]; reportRows[0] = new Singer ("N263Y", "T-11", "39 ROSCOE TRNRRACER", "R1830 SERIES"); reportRows[1] = new Singer ("N4087X", "BA100-163", "BRADLEYAEROBAT", "R2800 SERIES"); reportRows[2] = new Singer("N43JE", "HAYABUSA 1", "NAKAJIMAKI-43 IIIA", "R1830 SERIES"); reportRows[3] = new Singer("N912S", "9973CC", "PA18-150","R-1820 SER"); list.add(reportRows); JRDataSource dataSource =new JRBeanArrayDataSource(reportRows); JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list); File reportFile = new File("test.jrxml"); //--------------------------------------------------------------------------------- JasperCompileManager.compileReportToFile(reportFile.getPath(),"abc.jasper"); JasperPrint jasperPrint = JasperFillManager.fillReport("abc.jasper", map, dataSource); JasperExportManager.exportReportToPdfFile(jasperPrint,"C://complete.pdf"); } catch (JRException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }}*********************************************************************************Finally a Pojo Class called Singer is package com.home; public class Singer { private String number; private String name; private String age; private String sal; public Singer(String number,String name,String sal,String age) { setNumber(number); setName(name); setAge(age); setSal(sal); System.out.println(" Object created Constructor called 666666666666666666666666"); } public void setNumber(String number) { this.number=number; } public void setName(String name) { this.name=name; } public void setAge(String age) { this.age=age; } public void setSal(String sal) { this.sal=sal; } public String getNumber() { return number; } public String getName() { return name; } public String getAge() { return age; } public String getSal() { return sal; } public static void main(String[] args) { System.out.println("Hello World!"); } } Link to comment Share on other sites More sharing options...
haisureshbabu Posted April 11, 2009 Author Share Posted April 11, 2009 In the .jrxml we Should specify the filed names exactly what we gave in Java Bean [Exact Spelling should be ] or POJO classSo .jrxml will be changed asMyself only found it by doing and observing another example Iam so happy for this ................................ <?xml version="1.0"?><jasperReport name="PdfEncryptReport" ><field name="number" class="java.lang.String"/><field name="name" class="java.lang.String"/><field name="sal" class="java.lang.String"/><field name="age" class="java.lang.String"/> <detail> <band height="30"> <textField> <reportElement x="0" y="0" width="69" height="24"/> <textFieldExpression class="java.lang.String"> <![CDATA[$F{number}]]> </textFieldExpression> </textField> <textField> <reportElement x="140" y="0" width="69" height="24"/> <textFieldExpression class="java.lang.String"> <![CDATA[$F{name}]]> </textFieldExpression> </textField> <textField> <reportElement x="280" y="0" width="69" height="24"/> <textFieldExpression class="java.lang.String"> <![CDATA[$F{sal}]]> </textFieldExpression> </textField> <textField> <reportElement x="420" y="0" width="69" height="24"/> <textFieldExpression class="java.lang.String"> <![CDATA[$F{age}]]> </textFieldExpression> </textField> </band> </detail></jasperReport> Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now