Relatorios Jasper sem compilar, é possível?

11 respostas
S

Oi galera,

Realmente estou me matando com essa budega de jasperreports, ja postei varias duvidas…algumas coisas ja resolvi…poxa…tava td funcionando aqui, mas meus pesadelos começaram quando comecei a usar Java Web Start pra executar a aplicação remotamente. Tenho vários problemas no Windows pra gerar os relatórios, pelo fato de precisar sempre compilar ele. Isso implica em várias coisas, como setar direitinho o classpath e ter o javac na máquina do cliente.

Será q naum tem uma maneira de somente executar o relatório sem precisar compilar na máquina do cliente?

Conforme vi em alguns foruns, já tentei coisas do tipo:

impressao = JasperFillManager.fillReport(“C:\nomedorelatorio.jrxml”, parametros, con);

ou

impressao = JasperFillManager.fillReport(“C:\nomedorelatorio.jasper”, parametros, con);

ou

InputStream fis = Panel.class.getResourceAsStream(“nomedorelatorio.jrxml”);
impressao = JasperFillManager.fillReport(fis, parametros, con);

e nenhum deu certo…

Espero q alguem possa me dar uma luz…aiaiaiai…meu deus! :cry: :cry: :cry: :cry: :cry:

Valews!

11 Respostas

_fs

Distribua os .jasper com a sua aplicação, assim só tem que compilar em tempo de desenvolvimento.

S

mas de q maneira eu chamo os arquivos .jasper?? pq eu ja tentei fazer q nem esses codigos q eu coloquei…ta errado assim?

_fs
JasperReport jasperReport = JasperManager.loadReport( "caminho para o arquivo .jasper ou o inputstream do mesmo" );
JasperPrint jasperPrint = JasperFillManager.fillReport(
	jasperReport, parameters, resultSetDataSource );

O arquivo .jasper é um relatório compilado. Ou você estava querendi dizer distribuir o relatório já preenchido com dados?

S

hummm…naum, era isso mesmo, quero distribuir o rel compilado…bem, eu ja tentei usar o loadreport, mas naum tinha rolado…vou tenta de novo…e qq coisa mando o erro…
Valew!

S

Ola LIPE…entaum eu tentei, usando o seguinte codigo:

JasperReport relatorio = JasperManager.loadReport( “/tmp/relatorioFaixaEtaria.jasper”);
impressao = JasperFillManager.fillReport(relatorio, parametros, con);

So q deu o seguinte erro:

java.io.InvalidClassException: net.sf.jasperreports.engine.base.JRBaseReport; local class incompatible: stream classdesc serialVersionUID = 604, local class serialVersionUID = 606

at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:463)

at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)

at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)

at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)

at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:86)

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:63)

at net.sf.jasperreports.engine.JasperManager.loadReport(JasperManager.java:990)

at

report.FrameReportWizard.CompilaReport(FrameReportWizard.java:329)

at

report.FrameReportWizard.access$3(FrameReportWizard.java:321)

at

report.FrameReportWizard$6.actionPerformed(FrameReportWizard.java:190)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)

at java.awt.Component.processMouseEvent(Component.java:5100)

at java.awt.Component.processEvent(Component.java:4897)

at java.awt.Container.processEvent(Container.java:1569)

at java.awt.Component.dispatchEventImpl(Component.java:3615)

at java.awt.Container.dispatchEventImpl(Container.java:1627)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

at java.awt.Container.dispatchEventImpl(Container.java:1613)

at java.awt.Window.dispatchEventImpl(Window.java:1606)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
NESTED BY :

java.io.InvalidClassException: net.sf.jasperreports.engine.base.JRBaseReport; local class incompatible: stream classdesc serialVersionUID = 604, local class serialVersionUID = 606

at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:463)

at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)

at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)

at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)

at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:86)

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:63)

at net.sf.jasperreports.engine.JasperManager.loadReport(JasperManager.java:990)

at

report.FrameReportWizard.CompilaReport(FrameReportWizard.java:329)

at

report.FrameReportWizard.access$3(FrameReportWizard.java:321)

at

report.FrameReportWizard$6.actionPerformed(FrameReportWizard.java:190)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)

at java.awt.Component.processMouseEvent(Component.java:5100)

at java.awt.Component.processEvent(Component.java:4897)

at java.awt.Container.processEvent(Container.java:1569)

at java.awt.Component.dispatchEventImpl(Component.java:3615)

at java.awt.Container.dispatchEventImpl(Container.java:1627)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

at java.awt.Container.dispatchEventImpl(Container.java:1613)

at java.awt.Window.dispatchEventImpl(Window.java:1606)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
NESTED BY :

net.sf.jasperreports.engine.JRException: Error loading object from file : /tmp/relatorioFaixaEtaria.jasper

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:90)

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:63)

at net.sf.jasperreports.engine.JasperManager.loadReport(JasperManager.java:990)

at com.zerbini.agencia.pfs.swing.report.FrameReportWizard.CompilaReport(FrameReportWizard.java:329)

at com.zerbini.agencia.pfs.swing.report.FrameReportWizard.access$3(FrameReportWizard.java:321)

at com.zerbini.agencia.pfs.swing.report.FrameReportWizard$6.actionPerformed(FrameReportWizard.java:190)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)

at java.awt.Component.processMouseEvent(Component.java:5100)

at java.awt.Component.processEvent(Component.java:4897)

at java.awt.Container.processEvent(Container.java:1569)

at java.awt.Component.dispatchEventImpl(Component.java:3615)

at java.awt.Container.dispatchEventImpl(Container.java:1627)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

at java.awt.Container.dispatchEventImpl(Container.java:1613)

at java.awt.Window.dispatchEventImpl(Window.java:1606)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

Caused by: java.io.InvalidClassException: net.sf.jasperreports.engine.base.JRBaseReport; local class incompatible: stream classdesc serialVersionUID = 604, local class serialVersionUID = 606

at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:463)

at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)

at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)

at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)

at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:86)

 28 more

Ah detalhe, estou usando jasper 0.6.6, naum sei se a versao inluencia…

Vc pode me ajudar?? :frowning:

keller

serialVersionUID = 604, local class serialVersionUID = 606

A Versao do .jasper foi compilada com o JasperReports 0.6.4
E na hora de exibir voce esta usando o JasperReports 0.6.6

Isto esta gerando uma incompatibilidade por causa da serializacao.
Compile e execute usando a mesma versao do JasperReport que
nao acontecera este erro…

até mais…

S

Oi gui, valeu pela dica, faz sentido mesmo…poxa…compilei usando o jasper 0.6.4 e usei a mesma versao na aplicacao, mas ainda continua dando erro…naum guento mais…aiaiai…tentei entender, mas… :cry:

Ta aqui o danado:

java.lang.NoClassDefFoundError: org/eclipse/jdt/internal/compiler/env/INameEnvironment

at java.lang.Class.getDeclaredConstructors0(Native Method)

at java.lang.Class.privateGetDeclaredConstructors(Class.java:1618)

at java.lang.Class.getConstructor0(Class.java:1930)

at java.lang.Class.newInstance0(Class.java:278)

at java.lang.Class.newInstance(Class.java:261)

at net.sf.jasperreports.engine.design.JRDefaultCompiler.loadCalculator(JRDefaultCompiler.java:192)

at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:370)

at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:126)

at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:118)

at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:111)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:291)

at report.FrameReportWizard.CompilaReport(FrameReportWizard.java:348)

at report.FrameReportWizard.access$3(FrameReportWizard.java:321)

at report.FrameReportWizard$6.actionPerformed(FrameReportWizard.java:190)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)

at java.awt.Component.processMouseEvent(Component.java:5100)

at java.awt.Component.processEvent(Component.java:4897)

at java.awt.Container.processEvent(Container.java:1569)

at java.awt.Component.dispatchEventImpl(Component.java:3615)

at java.awt.Container.dispatchEventImpl(Container.java:1627)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

at java.awt.Container.dispatchEventImpl(Container.java:1613)

at java.awt.Window.dispatchEventImpl(Window.java:1606)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

Bigada, gente!!!

keller

NoClassDefFoundError,

Ele nao conseguiu encontrar alguma classe ou
algum import está ‘quebrado’…

[dica]
faça um ‘full build’
e recompile os relatorios…
[/dica]

[chutando]
Voce removeu o JasperReports0.6.4 do classpath
e nao adicionou o JasperReports0.6.6 ao classpath do eclipse
[/chutando]

até…

_fs

O problema parece ser do Eclipse. Veja o pacote da classe faltante.

C

O JasperReport costuma utilizar várias outros pacotes. O que costumo fazer é adicionar todos os pacotes existentes na lib no iReport. Tente fazer isso e vê se funciona.

M

ola

gostaria de saber se alguem conseguiu executar um relatorio .jasper feito no ireport usando o java web start ??

Criado 9 de maio de 2005
Ultima resposta 18 de jun. de 2007
Respostas 11
Participantes 5