Problemas no JasperReport

5 respostas
G

Eu to precisando de ajuda em uma aplicação que eu to fazendo usando o Jasper, eu to usando o seguinte metodo para chamar o Arquivo:

public void GeraReceituario()
    {
        JasperReport caminho = null;
        
       String doenca = rel_doenca.getSelectedItem().toString();
        
          try {
            caminho = (JasperReport) JRLoader.loadObject(getClass().getClassLoader().getResource("Receitas.jasper"));
        } catch (JRException ex) {
             System.out.println(ex.getMessage()); 
            ex.printStackTrace();
        }
        
        Map parametros = new HashMap();
        
        parametros.put("rel_doenca",doenca);
        parametros.put("rel_tratamento",rel_tratamento);
        parametros.put("rel_obs",rel_obs);
        
         JasperPrint impressao = new JasperPrint();  
        
        try {   
           impressao = JasperFillManager.fillReport(caminho ,parametros);   
               
            JasperViewer viewer = new JasperViewer(impressao, true);   
            viewer.setVisible(true);   
           JasperViewer.viewReport(impressao,false);  
       
        } catch (JRException e) {   
            System.out.println(e.getMessage());   
        }   
        
    }
e esta dando o seguinte erro:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at Receituario.GeraReceituario(Receituario.java:32)
        at Receituario.jButton4ActionPerformed(Receituario.java:182)
        at Receituario.access$300(Receituario.java:21)
        at Receituario$4.actionPerformed(Receituario.java:122)
        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:3260)
        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)

Alguem sabe como eu faço para resolver esse problema....
Vlw

5 Respostas

agostinho

No Netbeans ou Eclipse vc pode colocar 1 breakpoint rodar o programa, ai vc acompanha o fluxo do mesmo…e vai verficando qual variavel esta apontando p/ NULL…esse eh o erro…

por exemplo

JasperReport caminho = null;

se o nome do seu arquivo estiver errado…BUM…a variavel caminho vai ficar nula e causar erro…veja qual objeto está nulo q vc resolve.

G

Kara vc fala eu pegar o nome do arquivo Receitas.jasper?, eu ja peguei esse aquivo copiei o nome dele e nda continua dando erro, eu ñ sei mais oq eu posso estar fazendo, tem algum outro meio de fazer isso?

agostinho

vc interpretou errado. eu dei apenas um exemplo de como um Nullpointer PODE ocorrer…o que eu to dizendo eh que ALGUM objeto no seu programa esta NULL, por isso da pau…vc precisa descobrir q objeto eh esse e a forma mais facil eh vc rodar seu programa em modo Debug…

G

Eu passei o Debug e ele da erro na variavel Caminho, na hora de chamar o relatorio ele passa pelo try, ai quando ele chega na linha JasperFileManager(caminho, parametro) ele para o debug e da esse erro

xception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/javaflow/bytecode/Continuable at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$000(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:420) at Receituario.GeraReceituario(Receituario.java:49) at Receituario.btn_imprimirActionPerformed(Receituario.java:178) at Receituario.access$300(Receituario.java:20) at Receituario$4.actionPerformed(Receituario.java:118) 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:3260) 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)
vc sabe oq pode ser?

agostinho

vc pode inspecionar uma variavel e ver quais valores ela tem durante o Debug (depois da linha do debug passar pela variavel)…nesse seu caso, sua variavel caminho provavelvemnte deve estar NULA…ai quando vc passa JasperFileManager(caminho, parametro) da pau pois o JasperFileManager nao aceita um NULL

Criado 3 de setembro de 2008
Ultima resposta 4 de set. de 2008
Respostas 5
Participantes 2