Relatorio na web

3 respostas
J

Alguem ai sabe utiliza JASPERREPORT e iReport para criar relatórios para internet, pois estou com um problema bem chato...
Desenvolvi o relatorio e compilei o mesmo...
Criei um servlet que carrega e configura o relatorio para exportar para pdf e exibilo no browser, mas quando termina d krregar aparece uma pagina pdf em branco alguem sabe por q :?: :?: :?:

import net.sf.jasperreports.engine.*;
import it.businesslogic.ireport.util.ReportUtils;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Report extends HttpServlet{
//--------------------------------------------------Variaveis-----------------------------------------------------\\
	
	private static final long serialVersionUID = 1L;
	private static final OutputStream OutputStream = null;
	
//----------------------------------------------Metodos do Servlet------------------------------------------------\\	

	protected void service(HttpServletRequest request, HttpServletResponse response) 
		throws ServletException, IOException {
		
 	    try {
 		// nome do relatorio
 		String reportName = "C:/Arquivos de programas/Apache Software Foundation/Tomcat 5.5/webapps/Sever/"	+ "Doacao.jasper";
 		
 		
 		Map parameters = new HashMap();
 		parameters.put("Title","Relatório de Doações");
 		
 		//carrega relatório    
 		JasperPrint print = JasperFillManager.fillReport(reportName, parameters);
 		ByteArrayOutputStream Stream = new ByteArrayOutputStream();
 			
 		//exporta para pdf
 		JasperExportManager.exportReportToPdfStream(print, Stream);            
 
 		//define os cabecalhos do header            
 		response.setHeader("Pragma","");
 		response.setHeader("Cache-Control","");
 		response.setHeader("Expires","");
 		response.setContentType("application/pdf");
 		response.setContentLength(Stream.size());
 
 		// escreve o relatorio no response
 		OutputStream out = response.getOutputStream();  
 		Stream.writeTo(out);
 		out.flush();	
 		out.close();
 	    } catch (Exception e) { 
 	    	e.printStackTrace();	
 	    	response.getWriter().println("Erro: " + e);	   	      } finally {    	        
 		
 	    }
 	}
  }

[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - marcossousa[/color][/size] :joia:

3 Respostas

M

Opa,

veja nos logs a exception gerada. E manda aí há duas hipóteses: não há dados ou há algum erro interno no teu jasper que você não está tratando a exceptions. Neste caso pegue os logs.

:joia:

C

Tu usa o iReport no Linux

J

Eu utilizo Windows XP!!!

Criado 5 de junho de 2006
Ultima resposta 29 de jun. de 2006
Respostas 3
Participantes 3