Erro na geração de relatórios JasperReport

3 respostas
fredericoengels

Olá pessoal, tudo bem?

Bom, estou desenvolvendo um módulo de um sistema, que consiste basicamente em Gerar relatórios de uma entidade específica. No meu caso, a entidade é Clientes. Estou usando Netbeans + iReport + JasperReport + JSP + Servlets.

Criei uma classe chamada RelatorioService e o código segue abaixo:
public class RelatorioService {

    public JasperPrint gerarRelatorio(String jasper) {
        try {
            Conexao conexao = Conexao.getInstance();
            Connection con = conexao.abrirConexao();
            HashMap parametros = new HashMap();
            JasperPrint printer = JasperFillManager.fillReport(jasper, parametros, con);
            return printer;
        } catch (JRException ex) {
            Logger.getLogger(RelatorioService.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }
}

Criei esse método, pois vou ter vários servlets, como: GerarRelatorioPDF, GerarRelatorioHTML, etc, etc. Então nos Servlets, eu só chamo o método e exporto o "printer" para o formato que eu quiser.

Segue abaixo o código do servlet GerarRelatorioPDF:

public class GerarRelatorioPDF extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
           Facade facade = Facade.getInstance();
           String jasper = "relatorioClientes.jasper";
           String nomeArquivo = "clientes.pdf";
           JasperPrint printer = facade.gerarRelatorio(jasper);
           JasperExportManager.exportReportToPdfFile(printer, nomeArquivo);
       }catch (Exception e) { }        
    }

   
}

Esse código não funciona, ta dando pau, e eu tenho quase certeza (certeza absoluta) que seja por causa dos caminhos dos arquivos. Alguém poderia me ajudar?

Segue abaixo o erro

java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException
	net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:117)
	br.crud.controller.servlets.GerarRelatorioPDF.doGet(GerarRelatorioPDF.java:30)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

3 Respostas

thiagocg

Olá fredericoengels, aparentemente é algum jar que está faltando no seu classpath.

Da uma verificada ai se tem o itext.jar no seu classpath.

[]'s

fredericoengels

@thiagocg:

Não, só adicionei o .jar do iReport e do JasperReport. A propósito, que biblioteca é essa?

thiagocg

Cara é assim o jasper report / ireport permite a vc exportar seu relatorio pra diversos formatos, mas pra isso ele usa outras bibliotecas além do ireport e do jasper, no seu caso vc esta exportando pra pdf e o ireport usa o itext para geração do arquivo pdf.

Na pagina do ireport mesmo tem um texto muito bom falando sobre as dependencias, da uma lida q vc vai entender direitinho.

Seque o link:
http://jasperforge.org/website/ireportwebsite/IR%20Website/ir_deploying_reports.html?header=project&target=ireport

[]'s

Criado 24 de fevereiro de 2011
Ultima resposta 24 de fev. de 2011
Respostas 3
Participantes 2