Gurizada, seguinte, estou com problemas para gerar um relatório passando as informações através de um data source no jasper. Criei minha classe com o atributo nome, e em meu relatório criei um campo nome qual receberá os dados contidos no data source. Com o JRMapArrayDataSource funciona e com JRBeanCollectionDataSource e o JRBeanArrayDataSource não.
O erro está aí em baixo…
run:
pedro
22/02/2010 14:31:06 tapmebr.spsc.relatorios.Relatorio gerar
SEVERE: null
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : nome
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:116)
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:93)
at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:104)
at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:813)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:777)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1106)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:111)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:763)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:688)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:492)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:448)
at tapmebr.spsc.relatorios.Relatorio.gerar(Relatorio.java:97)
at tapmebr.Main.main(Main.java:22)
Caused by: java.lang.NoSuchMethodException: Property ‘nome’ has no getter method
at org.apache.commons.beanutils.PropertyUtils.getSimpleProperty(PropertyUtils.java:1180)
at org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java:772)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:801)
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:104)
… 14 more
Reparem no pedro que aparece logo abaixo da palavra run:, este é impresso diretamente do meu objeto que está atribuido este valor. Abaixo tem o código…
List<Consolidado> c = new ArrayList();
c.add(new Consolidado("pedro"));
c.add(new Consolidado("paulo"));
System.out.println(c.get(0).getNome());
JRBeanCollectionDataSource datasource = new JRBeanCollectionDataSource(c);
try {
JasperFillManager.fillReportToFile("c:/relatorios/Relatorio.jasper",
new HashMap(), datasource);
} catch (JRException ex) {
Logger.getLogger(Relatorio.class.getName()).log(Level.SEVERE, null, ex);
System.exit(0);
}
O que faço de errado?
Grato.