IReport

Bom dia a todos!
Galera estou dando os primeiros passos com o IReport. Na mnha aplicação eu não trabalho com persistencia e sim com um List para fazer o meu relatório.
Baseado em um tutorial fiz um exemplo que ele me deu, mas não dá certo.

String caminhoRelJasper = "c:/Teste.jasper";//no tutorial ele não coloca caminho, apenas Teste.jasper ///como estava gerando excecao, pensei que poderia ser caminho. List list = getLivros(); InputStream relJasper = getClass().getResourceAsStream(caminhoRelJasper);//onde é gerada a excecao JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list); Map map = new HashMap(); map.put("pathSubRel", caminhoRelJasper); JasperPrint impressao = JasperFillManager.fillReport(relJasper, map, ds); JasperViewer viewer = new JasperViewer(impressao, true); viewer.setVisible(true);

Ele diz que a variavel relJasper é null.
Já modifiquei o path varias vezes, mas não dá.

Quando eu coloco o .jasper no src do projeto ele gera a seguinte excecao

Exception in thread “main” java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
at java.lang.Class.getDeclaredField(Class.java:1880)
at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1610)
at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52)
at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:425)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.(ObjectStreamClass.java:413)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310)
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:547)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:196)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:580)
at TesteIReport.Inicio.exibirRelatorio(Inicio.java:54)
at TesteIReport.Inicio.main(Inicio.java:70)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188 )
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
… 33 more

Alguém me dá uma luz aê!
:slight_smile:

vlw!!

Coloque seu .jasper na mesma pacote de sua classe, e retire o C:/

[]'s

Felagund, desculpa kra!
Eu tinha esquecido dessa parte, mas eu ajeitei!
:slight_smile:
Olha lá por favor a excecao que ele gera quando eu coloco o .jasper no src da aplicação!

O correto é voce coloar no src ou em algum pacote do seu projeto

InputStream relJasper = getClass().getResourceAsStream("/myFile.jasper");//qndo for sorce
InputStream relJasper = getClass().getResourceAsStream("/br/com/projeto/ireport/myFile.jasper");//qndo for pacote

sobre a exception
Exception in thread “main” java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;

Voce tem que ter o .jar:
commons-logging.jar

blz, agora deu pau em outro canto!
srsrsr…
ele ta gerando a seguinte excecao:
Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.(DefaultExtensionsRegistry.java:99)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:63)
at net.sf.jasperreports.extensions.ExtensionsEnvironment.createDefaultRegistry(ExtensionsEnvironment.java:84)
at net.sf.jasperreports.extensions.ExtensionsEnvironment.(ExtensionsEnvironment.java:72)
at net.sf.jasperreports.engine.util.JRStyledTextParser.(JRStyledTextParser.java:81)
at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:175)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:77)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:59)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:83)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:582)
at TesteIReport.Inicio.exibirRelatorio(Inicio.java:54)
at TesteIReport.Inicio.main(Inicio.java:70)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.ReferenceMap
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
… 20 more

:?

ta falando o jar commons-collections

Valeu pela ajuda galera!
Consegui!
:smiley:

Amigo onde vc ez download e quais vc colocou na biblioteca?

Amigo vc pode me falar todos os .Jar
para uma aplicação descktop usando meu iReport 3.7.0 ou o 3.5.2 mesmo?

os jars voce pode pegar… fika dentro da pasta do ireport

C:\Arquivos de programas\Jaspersoft\iReport-3.0.0\lib

[quote=dudu_sps]os jars voce pode pegar… fika dentro da pasta do ireport

C:\Arquivos de programas\Jaspersoft\iReport-3.0.0\lib[/quote]

Nesse tempo do 3.0.0 né pq me parece que achei nesse caminho
[color=blue]C:\Arquivos de programas\JasperSoft\iReport-3.7.0\ireport\modules\ext[/color]