Relatório veio em Branco?

1 resposta
O21

Help!!!

Consegui carregar o relatorio .jasper e exportar para pdf, mas está tudo em branco…

O que está ocorrendo…

Chamo ele assim pelo browser: http://127.0.0.1:8080/Sever/Report, ai aparece uma página em pdf toda branca…

Esse é meu Servlet:

[b] import net.sf.jasperreports.engine.*;

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.JasperViewer;

import java.io.IOException;
import java.util.*;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class JaperReport extends HttpServlet{

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
	doPost(arg0, arg1);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException {
	
	String pathJasper = getServletContext().getRealPath("Report.jasper");
	String pathPDF = "C:/Arquivos de programas/Apache Software Foundation/Tomcat 5.5/webapps/Sever/"; 
	
    //Parametros do relatorio
    Map parametros = new HashMap();
	
    try {
		
        //Aqui ele cria o relatório
       JasperPrint impressao = JasperFillManager.fillReport(pathJasper, parametros);
		
        //Grava o relatório em disco em pdf
       JasperManager.printReportToPdfFile(impressao, pathPDF            
      + "Report.pdf");
		
        //Redireciona para o pdf gerado
       response.sendRedirect("Report.pdf");
				
 } catch (Exception e) {
        response.getWriter().println("Erro ao gerar o relatório: " + e);
}
    }

[/b]

1 Resposta

J

Segue de bandeja um exemplo:

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Connection conn = null;
		
	    try {
		// nome do relatorio
		String reportName = request.getParameter("reportName");		

		if (reportName == null || reportName.equals("")) {
		throw new Exception("Nome do relatório deve ser informado.");
		}

		// copia parametros da requisição
		Enumeration en = request.getParameterNames();
		Map parameters = new HashMap();
		while(en.hasMoreElements()){
		String key = (String) en.nextElement();
		parameters.put(key, request.getParameter(key)); 
		}
		parameters.put("REPORT_LOCALE", new Locale("pt", "br")); 		    	    

		// conexão do datasource
		PoolConnection pool = new PoolConnection();
		conn = pool.getJdbcURL().getConnection();    	

		// carrega relatório
		JasperReport relatorio = ReportUtils.getReport(reportName);		    
		JasperPrint jasperPrint = JasperFillManager.fillReport(relatorio, parameters, conn);
		ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();

		// exporta para pdf
		JasperExportManager.exportReportToPdfStream(jasperPrint, arrayOutputStream);            

		// define os cabecalhos do header            
		response.setHeader("Pragma","");
		response.setHeader("Cache-Control","");
		response.setHeader("Expires","");

		response.setContentType("application/pdf");
		response.setContentLength(arrayOutputStream.size());

		// escreve o relatorio no response
		OutputStream out = response.getOutputStream();		    
		arrayOutputStream.writeTo(out);
		out.flush();	
		out.close();
	    } catch (Exception e) {
		e.printStackTrace();	
		request.setAttribute("ERRO_REPORT", e.getMessage());
		this.getServletContext().getRequestDispatcher("/paginaEmBranco.jsp").forward(request, response);		    	    	
	    } finally {    	        
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
			}
		}
	    }
	}
Criado 29 de maio de 2006
Ultima resposta 30 de mai. de 2006
Respostas 1
Participantes 2