Problemas IReport

Galera,

estou tentando gerar um relatório no ireport, mas sempre que abro o pdf o mesmo esta em branco e nenhum erro é gerado. Alguém pode me ajudar???

Segue o código:

[code] public void geraRelatorioPDF() throws JRException, IOException {

	final Map<String, Object> parametros = new HashMap<String, Object>();
	tarefaList = recuperaListaTarefasRelatorio();

	parametros.put("quantidadeDias", quantidadeDias);
	parametros.put("tecnico", tarefa.getUnidadeUsuarioInativacao());

	if (tipoVencimento.equals(ApplicationConstant.A_VENCER)) {
		parametros.put("tipoVencimento", "A Vencer");
	} else if (tipoVencimento.equals(ApplicationConstant.VENCIDAS)) {
		parametros.put("tipoVencimento", "Vencidas");
	}

	JasperReportUtil.gerarPDF(parametros, this.tarefaList, "RelatorioTarefaPorVencimento.jasper");
}[/code]

[code]public static void gerarPDF(Map parametros, Collection list, String nomeRelatorioJasper) throws JRException, IOException {
final FacesContext context = FacesContext.getCurrentInstance();
final HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
final ServletOutputStream servletOutputStream = response.getOutputStream();

	final String arquivoRelatorio = ApplicationConstant.CAMINHO_ARQUIVO_RELATORIO.concat(nomeRelatorioJasper);
	final InputStream in1 = JasperReportUtil.class.getClassLoader().getResourceAsStream(arquivoRelatorio);

	JasperRunManager.runReportToPdfStream(in1, servletOutputStream, parametros, new JRBeanCollectionDataSource(list));

	final StringBuilder fileName = new StringBuilder();
	fileName.append("attachment;filename=\"");
	fileName.append(nomeRelatorioJasper.replaceAll(ApplicationConstant.JASPER_FILE_FORMAT, ""));
	fileName.append(ApplicationConstant.PDF_FILE_FORMAT);
	fileName.append("\"");

	response.setContentType(ApplicationConstant.CONTENT_TYPE_PDF);
	response.setHeader(ApplicationConstant.CONTENT_DISPOSITION, fileName.toString());
	response.setHeader(ApplicationConstant.CACHE_CONTROL, "no-cache");

	servletOutputStream.flush();
	servletOutputStream.close();

	context.responseComplete();
}[/code]

Olá @jerrymagal

Eu não analisei o código todo, por isso pode ser bobagem o que vou dizer. Apenas “bati o olho” e isso me chamou a atenção (linhas 21 e 22 da segunda listagem).

        servletOutputStream.flush();  
        servletOutputStream.close();  

Você está fechando o “output stream”, então não há resposta a ser enviada ao client, pois o “canal de comunicação” foi fechado.

Verifique se não é isso.

[]s

Consegui resolver. A lista que eu estava passando no DataSource estava vazia e como o relatório estava configurado para deixar tudo em branco caso não houvesse dados…

Mas vlw

[quote=jerrymagal]Consegui resolver. A lista que eu estava passando no DataSource estava vazia e como o relatório estava configurado para deixar tudo em branco caso não houvesse dados…

Mas vlw[/quote]

jerrymagal,

Vou ressuscitar seu tópico :slight_smile:
Por favor, pode me dizer como você configura o relatório para ser gerado mesmo quando o DataSource está vaio?

Grato,
Tássio Coelho