Falae galera … Estou com um problema… estou tentando passar um JRBeanCollectionDataSource pro eu iReport porem acho que nessa passagem está gerando um erro.
Minha Classe Bean:
[code]public class LivroBean {
private String titulo;
private String autor;
private String editora;
private Integer npags;
// getters & setters
}
[/code]
Minha Classe que eu criei para ter uma collection e seu metodo exibir relatorio.
// Muitos Imports aqui^^
public class LivroBeanFactory {
private List<LivroBean> listLivroBean = new ArrayList<LivroBean>();
public void adicionarLivro(LivroBean lb){
listLivroBean.add(lb);
}
public List<LivroBean> getListLivroBean(){
return listLivroBean;
}
public void exibirRelatorio(){
String caminhoRelJasper = "Livros.jasper";
List llb = getListLivroBean();
System.out.println(((LivroBean) llb.get(0)).getAutor());
InputStream relJasper = getClass().getResourceAsStream(caminhoRelJasper);
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(llb);
Map parametros = new HashMap();
JasperPrint impressao = null;
try{
impressao = JasperFillManager.fillReport(relJasper,parametros,ds);
JasperViewer viewer = new JasperViewer(impressao);
viewer.setVisible(true);
}catch(Exception e){
e.printStackTrace();
}
}
}[/code]
No meu IReports já tentei buscar usando $F{nomeDobean) para os campos e tambem $P{nomeDoBean)
porem com os 2 obtenho o mesmo erro:
[code]Gabriel
Exception in thread "main" java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Unknown Source)
at java.lang.Class.getDeclaredField(Unknown Source)
at java.io.ObjectStreamClass.getDeclaredSUID(Unknown Source)
at java.io.ObjectStreamClass.access$700(Unknown Source)
at java.io.ObjectStreamClass$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.<init>(Unknown Source)
at java.io.ObjectStreamClass.lookup(Unknown Source)
at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readArray(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.defaultReadObject(Unknown Source)
at net.sf.jasperreports.engine.base.JRBaseReport.readObject(JRBaseReport.java:732)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:194)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:603)
at LivroBeanFactory.exibirRelatorio(LivroBeanFactory.java:44)
at MainClass.main(MainClass.java:29)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log
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)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 40 more
Reparem que eu fiz um debugzinho usando System.out.println e ele chegou a pegar meu nome na Lista…
Alguem Pode me ajudar? é meio que urgente…
Obrigado desde já.