iReport + JasperReports gerando relatorio em branco

Olá pessoal seguinte,

Tenho um servlet que compila o .jasper e gera o pdf:

package br.com.xyz.jasper.util;

import java.io.IOException;
import java.sql.Connection;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;

/**
 * Classe que compila o .jasper gera o pdf e exibe ao client.
 * @author Guilherme I. Keller
 */
public class ReportBoleto extends HttpServlet {
	
	private static final long serialVersionUID = 1L;
	
	protected void doGet(	HttpServletRequest httpServletRequest,
							HttpServletResponse httpServletResponse ) throws ServletException, IOException {
		
		System.out.println(" vou gerar o relatorio.. ");
		
		//Variaveis locais..
		JasperReport jasperReport = null;
		byte[] pdfSegundaVia = null;
		HttpSession httpSession = httpServletRequest.getSession();
		
		//Obtem o caminho do .jasper
		ServletContext servletContext = super.getServletContext();
		String caminhoJasper = servletContext.getRealPath("/WEB-INF/reports/boleto_web.jasper");
		
		//Carrega o arquivo com o jasperReport
		try {
			jasperReport = (JasperReport) JRLoader.loadObject( caminhoJasper );
		} catch (JRException jre) {
			jre.printStackTrace();
		}
		
		//Passa os parametros para o relatorio ( Todos sao pegos da Session. )
		// TODO - Testing!
		Map parametros = new HashMap();
		parametros.put( "aceite", "NÃO" );
		parametros.put( "codigoBaixa", "" );
		parametros.put( "codigoBoleto", "74891.10622 00061.102299 02014.761098 4 32070000001000" );
		parametros.put( "codigoCedente", "0229.02.01476" );
		parametros.put( "dataDocumento", "05/07/2006" );
		parametros.put( "dataProcessamento", "05/07/2006" );
		parametros.put( "dataVencimento", "19/07/2006" );
		parametros.put( "desconto", "" );
		parametros.put( "especieDocumento", "RC" );
		parametros.put( "instrucoes", "" );
		parametros.put( "moraMulta", "" );
		parametros.put( "nomeCedente", "103 NOME DO CEDENTE" );
		parametros.put( "nossoNumero", "06/200061-1" );
		parametros.put( "numeroDocumento", "TESTE" );
		parametros.put( "outrasDeducoes", "" );
		parametros.put( "outrosAcrescimos", "" );
		parametros.put( "quantidadeMoeda", "" );
		parametros.put( "sacado", "1609 NONONONOONONONON" );
		parametros.put( "sacadoAvalista", "" );
		parametros.put( "valorCobrado", "" );
		parametros.put( "valorDocumento", "10,00" );
		parametros.put( "valorMoeda", "" );
		
		//Gera o pdf para exibicao..
		try {
			pdfSegundaVia = JasperRunManager.runReportToPdf( jasperReport, parametros );
		} catch (JRException jre) {
			jre.printStackTrace();
		}
		
		System.out.println( " caminhoJasper: " + caminhoJasper );
		System.out.println( " jasperReport: " + jasperReport );
		System.out.println( " parametros: " + parametros );
		System.out.println( " pdfSegundaVia: " + pdfSegundaVia );
		
		//Parametros para nao fazer cache e o que será exibido..
		httpServletResponse.setContentType( "application/pdf" );
		httpServletResponse.setHeader( "Cache-Control", "no-store" );
		httpServletResponse.setHeader( "Pragma", "no-cache" );
		httpServletResponse.setDateHeader( "Expires", 0 );
		
		//Envia para o navegador o pdf..
		ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream();
		servletOutputStream.write( pdfSegundaVia );
		servletOutputStream.flush();
		servletOutputStream.close();
		
	}
	
}

E no iReport adicionei os parametros: View -&gt Parameters
( parametros .jpg )

E para mostrar o valor do parametro estou fazendo da seguinte
maneira , na "band" title coloco um Field da seguinte maneira…
( parametro.jpg )

Problema: O report gerado esta completamente em branco,
nao acontece nenhuma exception , absolutamente nada…

Alguem ja passou por isso ?
Valeu Pessoal! :thumbup:




Viagem total…

Basta apenas alterar a seguinte linha:

//Gera o pdf para exibicao..
		try {
			pdfSegundaVia = JasperRunManager.runReportToPdf( jasperReport, parametros , new JREmptyDataSource() );
		} catch (JRException jre) {
			jre.printStackTrace();
		}

E tcharam! Funcionando que é uma maravilha!
Obrigado a todos que olharam o topico…

Até mais… :thumbup:

1 curtida

Kra nao to conseguindo importat a classe net…

import net.sf.jasperreports.engine.JasperCompileManager;

da esse erro:

   "The import net cannot be resolved"

vc acha q pod ser o q???

Obrigada pela atenção!!!

[quote=alanrocha77]Kra nao to conseguindo importat a classe net…

import net.sf.jasperreports.engine.JasperCompileManager;

da esse erro:

   "The import net cannot be resolved"

vc acha q pod ser o q???

Obrigada pela atenção!!![/quote]
Não precisa ficar duplicando as mensagens.
Acabei de responder aqui http://www.guj.com.br/posts/list/64011.java

Cara, valeu geral pela dica do catch.
Nem lembrava de algo tão obvio e simples.

Fuiii

//Gera o pdf para exibicao…
try {
pdfSegundaVia = JasperRunManager.runReportToPdf( jasperReport, parametros , new JREmptyDataSource() );
} catch (JRException jre) {
jre.printStackTrace();
}

Bacana, as vezes são soluções bem simples,

que o cara passa desapercebido…

Ps.: Renomeia o tópico… [Resolvido]

att. Jonas