Olá!

Muitas pessoas tem dificuldade em utilizar os relatórios feitos no iReport em suas aplicações, especialmente as webs, por não saberem onde colocar os arquivos .jasper em sua aplicação para que o Servlet ou o ManagedBean consiga lê-los. Então é bem comum ver  erros como esses:

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException
java.lang.NullPointerException
at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)

Recomendo colocar os arquivos jasper e/ou jrxml juntos as classes Java e não nos diretórios abaixo de Páginas Web no Netbeans ou Web Content no Eclipse, pois eles podem fica expostos. Não é desejado que os usuários possam baixa os arquivos jasper e/ou jrxml e ficarem fuçando neles.

A figura abaixo mostra o local correto para copiar o arquivo jasper e/ou jrxml no Netbeans. No Eclipse a lógica é a mesma, no lugar de Pacotes de código fontes coloque em Java Resorces: src.

Note que o arquivo jasper e/ou jrxml está no mesmo pacote do GerarRelatorioServlet.java e para obter o InputStream no Servlet eufaço assim getResourceAsStream(“Rel_Precipitacoes.jasper”).

Para ser mais organizado é possível colocar em outro pacote, nesse caso é preciso ajustar o caminho ao jasper com relação ao local do GerarRelatorioServlet.java. No exemplo abaixo o jasper ficou no pacote br.com.furutani.relatorios logo obtemos o InputStream passando esse caminho “../relatorios/Rel_Precipitacoes.jasper” no GerarRelatorioServlet.

O projeto do netbeans com os fontes e bibliotecas do JasperReports podem ser baixados no link:  [download id=”27″]

Espero ter ajudado.

Até mais,
Roberto

Share


3 comentários

  1. #
    camilo lopes
    novembro 27th, 2010 at 18:49

    roberto! Parabens! puts, vc salvou meu dia, cara, estava aqui com esse problema, por mais de 2 hrs, puts, ja tinha tentado os caminhso relativos, e absolutos e so conseguir rodar colocando caminho interno, mas nao queria isso, e sim o da aplicacao, assim nao precisa mudar,e achei seu post.
    parabens, por ter compartilhado a dica, realmente deve ajudar muitos por ai.
    abracos.

    Responda a esse comentário
  2. #
    Camilo Lopes – LpJava » Relatório Ireport + JasperReport com Hibernate
    dezembro 17th, 2010 at 9:18

    […] Note: Informando o JRXML: Link interessante […]

    Responda a esse comentário
  3. #
    Diogo Silva
    novembro 14th, 2014 at 12:43

    Valew cara, esse post mesmo sendo de 2010 ainda me ajudou hoje em 2014.

    Responda a esse comentário

Deixe seu comentário para camilo lopes