iReport - java.lang.NullPointerException [RESOLVIDO]

8 respostas
J

Faaala GUJ,

Bom eu estou tentanto a um tempo usar o jasper para gerar um relatório, li sobre este erro e parece que ele ocorre quando o caminho que contém o .jasper não é encontrado. No entanto eu fiz o seguinte código:

ServletContext context = this.getServletConfig().getServletContext();
File reportFile = new File(context.getRealPath("/WEB-INF/jasper/Lista.jasper"));

if (!reportFile.exists()) 
	System.out.println("!!! Arquivo .jasper não encontrado !!!");

if(reportFile.exists())
	System.out.println("!!! Arquivo .jasper encontrado !!!");

Na execução ele encontra o arquivo jasper mas continua dando este erro

java.lang.NullPointerException
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)

Os dados para o relário eu fiz o seguinte código:

List<beanPessoa> dados = new ArrayList<beanPessoa>();

	        for ( long i = 1; i <= 50; i++ ) {
	            beanPessoa c = new beanPessoa();
	            c.setStrNome( "Nome" + i );
	            dados.add( c );
	        }
		
	        JRDataSource teste = new JRBeanCollectionDataSource(dados);

try{
   JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
                         print = JasperFillManager.fillReport(jasperReport, parametros, dados);
}catch...

O que posso fazer ?

SOLUÇÃO: Segui as orientções do amigo Nicolas Fernandes, eu estava utilizando o iReport para desenhar os relatórios para o jasper 4.0 e os jar que estava usando era da versão 3.x.
Obrigado GUJ

8 Respostas

A

oi,

utilize o getResourceAsStream ao inves do getRealPath

http://www.guj.com.br/java/31094-jasperreport-e-arquivo-pdf

D

NullPointerException se refere a alguma instância nula, por algum motivo, uma informação não existe para a chamada do relatório.
Quando o erro se refere ã arquivo não encontrado, o erro é FileNotFoundException…

N

Cara, confira se os .JARs são coerentes com a sua versão do JasperReports.
Eu tive um problemão uma vez ao usar relatórios do Jasper 3.7.1 e JARs do 3.0.0, e eram os mesmos erros!

J

Estou utilizando o iReport para fazer os relatórios 4.0

D

Colocou as libs da versão que utiliza para fazer os relatórios?

D

Por gentileza, se as respostas aqui auxiliaram na correção do problema, informe.
Se houve outra solução, compartilhe, muitos terão a mesma dificuldade…

K

Nicolas Fernandes:
Cara, confira se os .JARs são coerentes com a sua versão do JasperReports.
Eu tive um problemão uma vez ao usar relatórios do Jasper 3.7.1 e JARs do 3.0.0, e eram os mesmos erros!

Uma resposta de 2011 me ajudou em 2012. O meu problema foi exatamente esse, obrigado!

C

Sei que já faz tempo esse post.
Mas tive esse problema hoje e encontrei uma solução.
No meu caso, havia um campo nulo que estava sendo passado da aplicação para o iReport/Jasper.
Como eu descobri: RETIREI TODAS AS MÁSCARAS DO RELATÓRIO
Aí ele parou de dar o erro. E exibiu valores somente onde havia. O campo nulo não mostrou claro,
ficando evidente quem era o causador.
Bastou zerar quando for nulo e tudo se resolveu.
Obrigada!

Criado 28 de janeiro de 2011
Ultima resposta 5 de dez. de 2013
Respostas 8
Participantes 6