Erro em gerar Relatorios para web

2 respostas
C

Boa tarde,
Estou aprendendo a gerar relatorios com jasperreports e ireport para web, porém estou tendo o seguinte erro

root cause 

java.lang.NoClassDefFoundError: com/lowagie/text/pdf/FontMapper
	net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:138)
	net.sf.jasperreports.engine.JasperPrintManager.printReportToPdfFile(JasperPrintManager.java:121)
	net.sf.jasperreports.engine.JasperManager.printReportToPdfFile(JasperManager.java:355)
	GeraRelatorio.doGet(GeraRelatorio.java:35)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

este é o meu servlet:

import net.sf.jasperreports.engine.*;

import java.util.*;
import java.sql.*;
import java.io.InputStream;
import javax.servlet.*;
import javax.servlet.http.*;

public class GeraRelatorio extends HttpServlet {
    
    private static final String driver = "com.mysql.jdbc.Driver";
    private static final String url = "jdbc:mysql://localhost/teste";
    private static final String login = "root";
    private static final String passwd = "";
	
    private static final String urlBase = "/report/";
    private static final String pageRoot = "/E:/Tomcat 5.0/webapps/relatorios";
	
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {

	try { 
	    // carrega o relatório compilado
	    InputStream stream = getServletContext().getResourceAsStream("/exemplo3.jasper");
	    JasperReport relatorio = JasperManager.loadReport(stream);
	    
	    // estabelece uma conexão JDBC (seria melhor usar DataSources J2EE)
	    Class.forName(driver);
	    Connection con = DriverManager.getConnection(url, login, passwd);
	   
	    //Determina o nome do arquivo temporário
	    String nomeArq = request.getSession().getId() + ".pdf";
	    
	    // executa o relatório e salva no arquivo temporário
	    JasperPrint impressao = JasperManager.fillReport(relatorio, new HashMap(), con);
	    JasperManager.printReportToPdfFile(impressao, pageRoot + urlBase + nomeArq);
	    
        // envia um redirect para o arquivo
	    response.sendRedirect(urlBase + nomeArq);
		
	}
	catch (Exception e) {
	    throw new ServletException(e);
	}
    }
}

Este erro só acontece quando tento transformar em .pdf,
e acontece quando chega na linha:

JasperManager.printReportToPdfFile(impressao, pageRoot + urlBase + nomeArq);

Alguem poderia me ajudar ? :roll:

2 Respostas

foia
Ponha o arquivo itext-XXX.jar, onde XXX é a versão, no CLASSPATH. Se não tiver esse arquivo, download em [url]http://ufpr.dl.sourceforge.net/sourceforge/itext/itext-1.3.1.jar[/url]

fôia

C

foia muuuuuuuuito obrigado, funcionou certinho.

valeu :smiley:

Criado 17 de maio de 2005
Ultima resposta 18 de mai. de 2005
Respostas 2
Participantes 2