Erro no relatório : Exception in thread "main" java.lang.NullPointerException

14 respostas
M

olá Amigos !! É minha primeira vez no forum!! não estou conseguindo achar a solução do meu problema.

Gera o pdf e apresenta o parametro, mas nao executa a sql dentro do relatório. Tem alguma manha para isso?

Não consigo encontrar o erro.

Estou usando:
Netbeans 6.5.1
iReport 3.5.2

Esta dando o seguinte erro:

Exception in thread "main" java.lang.NullPointerException at net.sf.jasperreports.engine.JRPropertiesMap.getProperty(JRPropertiesMap.java:102) at net.sf.jasperreports.engine.util.JRProperties.getProperty(JRProperties.java:511) at net.sf.jasperreports.engine.util.JRProperties.getIntegerProperty(JRProperties.java:549) at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createStatement(JRJdbcQueryExecuter.java:164) at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:123) at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:682) at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:614) at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:892) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:716) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:123) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:420) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:256) at util.MPL_Relatorio.geraRelatorio(MPL_Relatorio.java:49) at util.MPL_Relatorio.main(MPL_Relatorio.java:67)

Meu código é esse:

public void geraRelatorio(int codigo) { try{ conexao conn = new conexao(); conn.conecta("menpolosms", true); String caminho = "C:/Sistema/menpolosms/web/relatorios/"; Map parameters = new HashMap(); parameters.put("cod", new Integer(codigo)); parameters.put("REPORT_CONNECTION", conn.getConn()); JasperPrint impressao = JasperFillManager.fillReport(caminho+"gastos.jasper", parameters); JasperManager.printReportToPdfFile(impressao,"C:/Sistema/menpolosms/web/relatorios/gastos.pdf"); conn.desconecta(); } catch (JRException ex) { System.out.println("Erro 1: " + ex.toString()); } catch (SQLException ex) { System.out.println("Erro 2: " + ex.toString()); } }

Criei uma sql dentro do relatório:

Select * from mensagem where cdusuario = $P{cod}

Agradeço desde já.
Rafael Mattos

14 Respostas

kenneth

Fala cara…
acho que o problema ta aqui:

at util.MPL_Relatorio.geraRelatorio(MPL_Relatorio.java:49)

Dentro desse metodo voce deve estar usando alguma
variavel que ainda nao foi inicializada, por exemplo…

Abraco!

M

Amigo,

Obrigado pela atenção,

Mas essa colocação vc deixou ja tinha percebido. Por isso mesmo mandei o código da geraRelatorio(), apenas não encontro o problema ai dentro do método!!

kenneth

Perdao, eu fui desatento…

Voce tem o codigo da classe conexao ai?
Acredito que o problema esteja nela…

A proposito, este nome, conexao, foi de proposito? Ele sai
um pouco das convencoes, onde classes comecam com maiuscula…
:smiley:

Abraco!

celox

:slight_smile:

ja tentou debugar e ver se( e certamente está) as variaveis passadas estão nulas?

certamente vc vai encontrar um parametro passado como null…

M

Vivendo e aprendendo!! Preciso estudar mais essas converções.

Ok meu amigo vou dar uma degubada!! nunca debuguei em java apenas no visual c++.

Qualquer coisa volto a perguntar.
Obrigado

celox

Eu sei debugar no Eclipse, mas acredito que o procedimento para outras seja parecido…

o que vc precisa ter em mente é que no debug vc indica onde a interpretação deve pausar para que você estude, veja, compare e etc as variáveis, objetos e etc que quiser…

é como dissecar um sapo ou se preferir estripar xD rs

M

Cara esta com um pau no classpath!! os arquivo estavam todos desatualizados!! mesmo assim obrigado!!

celox

:S

resolve entao, debuga e posta ae!

:smiley:

M

Amigos o erro estava no meu classpath !!! Estava carregado as bibliotecas inferior a biblioteca que utilizei!!! ai estava o problema!!

o codigo continuou sendo o mesmo

public void geraRelatorio(int codigo) { try{ conexao conn = new conexao(); conn.conecta("menpolosms", true); String caminho = "C:/Sistema/menpolosms/web/relatorios/"; Map parameters = new HashMap(); parameters.put("cod", new Integer(codigo)); JasperPrint impressao = JasperFillManager.fillReport(caminho+"gastos.jasper", parameters,conn.getConn()); JasperManager.printReportToPdfFile(impressao,"C:/Sistema/menpolosms/web/relatorios/gastos.pdf"); conn.desconecta(); } catch (JRException ex) { System.out.println("Erro 1: " + ex.toString()); } catch (SQLException ex) { System.out.println("Erro 2: " + ex.toString()); } }

Obrigado mesmo assim !!!

TheKill

Caro amigo, ainda ficou alguma dúvida??

Só um pequeno pedido hehe, Poderia renomear o tópico para [RESOLVIDO]

Caso o problema ja encontrou uma solução final? ^^

Att. Jonas =]

M

menpolo:
olá Amigos !! É minha primeira vez no forum!! não estou conseguindo achar a solução do meu problema.

Gera o pdf e apresenta o parametro, mas nao executa a sql dentro do relatório. Tem alguma manha para isso?

Não consigo encontrar o erro.

Estou usando:
Netbeans 6.5.1
iReport 3.5.2

Esta dando o seguinte erro:

Exception in thread "main" java.lang.NullPointerException at net.sf.jasperreports.engine.JRPropertiesMap.getProperty(JRPropertiesMap.java:102) at net.sf.jasperreports.engine.util.JRProperties.getProperty(JRProperties.java:511) at net.sf.jasperreports.engine.util.JRProperties.getIntegerProperty(JRProperties.java:549) at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createStatement(JRJdbcQueryExecuter.java:164) at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:123) at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:682) at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:614) at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:892) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:716) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:123) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:420) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:256) at util.MPL_Relatorio.geraRelatorio(MPL_Relatorio.java:49) at util.MPL_Relatorio.main(MPL_Relatorio.java:67)

Meu código é esse:

public void geraRelatorio(int codigo) { try{ conexao conn = new conexao(); conn.conecta("menpolosms", true); String caminho = "C:/Sistema/menpolosms/web/relatorios/"; Map parameters = new HashMap(); parameters.put("cod", new Integer(codigo)); parameters.put("REPORT_CONNECTION", conn.getConn()); JasperPrint impressao = JasperFillManager.fillReport(caminho+"gastos.jasper", parameters); JasperManager.printReportToPdfFile(impressao,"C:/Sistema/menpolosms/web/relatorios/gastos.pdf"); conn.desconecta(); } catch (JRException ex) { System.out.println("Erro 1: " + ex.toString()); } catch (SQLException ex) { System.out.println("Erro 2: " + ex.toString()); } }

Criei uma sql dentro do relatório:

Select * from mensagem where cdusuario = $P{cod}

Agradeço desde já.
Rafael Mattos

M

menpolo:
olá Amigos !! É minha primeira vez no forum!! não estou conseguindo achar a solução do meu problema.

Gera o pdf e apresenta o parametro, mas nao executa a sql dentro do relatório. Tem alguma manha para isso?

Não consigo encontrar o erro.

Estou usando:
Netbeans 6.5.1
iReport 3.5.2

Esta dando o seguinte erro:

Exception in thread "main" java.lang.NullPointerException at net.sf.jasperreports.engine.JRPropertiesMap.getProperty(JRPropertiesMap.java:102) at net.sf.jasperreports.engine.util.JRProperties.getProperty(JRProperties.java:511) at net.sf.jasperreports.engine.util.JRProperties.getIntegerProperty(JRProperties.java:549) at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createStatement(JRJdbcQueryExecuter.java:164) at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:123) at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:682) at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:614) at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:892) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:716) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:123) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:420) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:256) at util.MPL_Relatorio.geraRelatorio(MPL_Relatorio.java:49) at util.MPL_Relatorio.main(MPL_Relatorio.java:67)

Meu código é esse:

public void geraRelatorio(int codigo) { try{ conexao conn = new conexao(); conn.conecta("menpolosms", true); String caminho = "C:/Sistema/menpolosms/web/relatorios/"; Map parameters = new HashMap(); parameters.put("cod", new Integer(codigo)); parameters.put("REPORT_CONNECTION", conn.getConn()); JasperPrint impressao = JasperFillManager.fillReport(caminho+"gastos.jasper", parameters); JasperManager.printReportToPdfFile(impressao,"C:/Sistema/menpolosms/web/relatorios/gastos.pdf"); conn.desconecta(); } catch (JRException ex) { System.out.println("Erro 1: " + ex.toString()); } catch (SQLException ex) { System.out.println("Erro 2: " + ex.toString()); } }

Criei uma sql dentro do relatório:

Select * from mensagem where cdusuario = $P{cod}

Agradeço desde já.
Rafael Mattos

pedroroxd

What the fuck???
QQ são esses 2 posts acima?
kkkk

TheKill

Esta passando algum objeto vazio…

Confira seu SQL ou HashMap e verifique se todas as informações estão sendo informadas ao relatório.

Se sim, verifique novamente os campos no relatorio e verifique se eles recebem exatamente o tipo de parametro que esta sendo passando na aplicação.

Att. Jonas

Criado 21 de outubro de 2009
Ultima resposta 23 de dez. de 2009
Respostas 14
Participantes 5