* Visite o ALJUG - http://aljug.blogspot.com - Noticias sobre a comunidade java alagoana e do mundo * Visite o blog Mundo Gamificado www.mundogamificado.com.br - E vamos mudar o mundo! *

domingo, 6 de janeiro de 2013

java.lang.NoSuchMethodException do Ireport

 Olá pessoall,

Estou eu de volta escrevendo um post, pois bem hoje eu vou falar de um erro que eu estava que toda vez que ia gerar um relatório o erro apresentava, tinha feito tudo mais sem sucesso. O erro é esse abaixo:

Caused by: java.lang.NoSuchMethodException: Unknown property '' on class

Como vocês podem ver a rotina estava procurando a propriedade vazio, só que não existia essa propriedade de fato, porém como corrigir este caso?

Nada como velho e bom google, mas não encontrei nada em português que pudesse me ajudar então encontrei em um site chamado zkoss.org e vou mostrar como corrige isto.

O erro no log pode ser encotnrado desta maneira:

net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : 
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

Com isso há uma propriedade em JRBeanCollectionDataSource que mostra a opção booleana para que espaços vazios nos JRXML sejam lidos, e é ai o segredo basta colocar um false para que não leia os espaços em branco então ficaria deste jeito:


JRBeanCollectionDataSource jrbcds = new JRBeanCollectionDataSource(data, false);

E assim corrige e não aparece mais o erro.

Espero ter ajudado.
Até a próxima.