Jasper Report não gera relatório no arquivo.jar

9 respostas
jards

Olá,

eu tenho um projeto que gera relatórios e manda direto para impressora usando o Jasper Report. Funciona muito bem quando estou usando o NetBeans. Quando construo arquivo.jar e tento executá-lo, o programa não imprimi mais o relatório. Tentei visualizar mais tambem não consigo.

Alguém pode me ajudar com esse problema?
Obrigado…

9 Respostas

V

Vc verificou se todos os jars necessarios para o jasper report funcionar estao na pasta lib de onde vc esta executando este arquivo.jar ?

Mero_Aprendiz

jards:
Olá,

eu tenho um projeto que gera relatórios e manda direto para impressora usando o Jasper Report. Funciona muito bem quando estou usando o NetBeans. Quando construo arquivo.jar e tento executá-lo, o programa não imprimi mais o relatório. Tentei visualizar mais tambem não consigo.

Alguém pode me ajudar com esse problema?
Obrigado…

Bem, os jars que você usou para desenvolver a sua aplicação já estão no classpath do seu programa?
De uma consultada aqui no GUJ para saber como adicionar os jars que você utilizou no classpath da sua aplicação.

[]'s
JL

jards

todos os jars necessarios estão no meu arquivo .jar, pois antes de postar dei uma olhada em dist\lib

jards

rodei meu arquivo .jar pelo shell do DOS e simulei uma impressão e o erro que apareceu foi…

07/04/2009 14:20:54 frames.JInternalFrameImprimirFormularioPesquisa jButtonImpri

mirActionPerformed

SEVERE: null

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: src\rela

torios\FormularioPesquisa.jasper

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

)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillMa

nager.java:232)

at frames.JInternalFrameImprimirFormularioPesquisa.jButtonImprimirAction

Performed(JInternalFrameImprimirFormularioPesquisa.java:139)

at frames.JInternalFrameImprimirFormularioPesquisa.access$000(JInternalF

rameImprimirFormularioPesquisa.java:32)

at frames.JInternalFrameImprimirFormularioPesquisa$1.actionPerformed(JIn

ternalFrameImprimirFormularioPesquisa.java:80)

at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour

ce)

at java.awt.Component.processMouseEvent(Unknown Source)

at javax.swing.JComponent.processMouseEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Window.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

Caused by: java.io.FileNotFoundException: src\relatorios\FormularioPesquisa.jasp

er

 30 more
V

Eu nao costumo passar o arquivo.jasper e sim um InputStream, vou te passar o metodo que utilizo para gerar meus relatorios, com a diferença q ele me retorna um byte[] de um pdf.

public byte[] report(InputStream relatorio, Collection list, Map<String,Object> parameters) throws JRException {
        
        /* Cria o design apartir do reportStream */
        JasperReport jasperReport = (JasperReport) JRLoader.loadObject(relatorio);
        
        /* Cria um JRBeanCollection a partir de um list fornecido */
        JRBeanCollectionDataSource lista = new JRBeanCollectionDataSource(list);
        
        /* Prepara o relatorio para impressao */
        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, lista);
        
        return JasperExportManager.exportReportToPdf(jasperPrint);
    }

Para pegar o InputStream

getClass().getResourceAsStream("/resource/ireport/Agenda.jasper");
jards

Amigo…

guando usei o InputStream com import java.io.InputStream deu o seguinte erro:

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException

at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2264)

at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2277)

at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2748)

at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)

at java.io.ObjectInputStream.(ObjectInputStream.java:280)

at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.(ContextClassLoaderObjectInputStream.java:57)

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

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

at relatorios.Relatorios.formularioPesquisa(Relatorios.java:42)

at frames.JInternalFrameImprimirFormularioPesquisa.jButtonImprimirActionPerformed(JInternalFrameImprimirFormularioPesquisa.java:131)

at frames.JInternalFrameImprimirFormularioPesquisa.access$000(JInternalFrameImprimirFormularioPesquisa.java:32)

at frames.JInternalFrameImprimirFormularioPesquisa$1.actionPerformed(JInternalFrameImprimirFormularioPesquisa.java:80)

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

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

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

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

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

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

at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

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

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

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

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

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

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

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

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

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

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

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

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

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)

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

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

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

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
jards

Ae galera…

Solucionei o problema…

A

Que mal lhe pergunte como solucionou o problema??

jards
utilizando o InputStream 

InputStream formularioPesquisa = getClass().getResourceAsStream("Formulario.jasper");
Criado 7 de abril de 2009
Ultima resposta 21 de abr. de 2009
Respostas 9
Participantes 4