Ireport com erro

0 respostas
R

Estou com um erro não estou conseguindo gerar o relatório com o IReport estou seguindo o livro Programação Java para Web a ultima versão do livro e não está gerando o relatório usando o IReport o relatório gera sem problemas mas na aplicação não segue o código da classe RelatorioUtil.java

RelatorioUtil.java

package financeiro.web.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;

import javax.faces.context.FacesContext;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.oasis.JROdtExporter;
import net.sf.jasperreports.engine.util.JRLoader;

import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;

import financeiro.util.UtilException;


public class RelatorioUtil {

	public static final int RELATORIO_PDF = 1;
	public static final int RELATORIO_EXCEL = 2;
	public static final int RELATORIO_HTML = 3;
	public static final int RELATORIO_PLANILHA_OPEN_OFFICE = 4;
	
	public StreamedContent geraRelatorio(HashMap parametrosRelatorio, String nomeRelarioJasper,
			String nomeRelatorioSaida, int tipoRelatorio) throws UtilException{
		
		StreamedContent arquivoRetorno = null;
		
		FacesContext context = FacesContext.getCurrentInstance();
		
		Connection conexao = this.getConexao();
		
		String caminhoRelatorio = context.getExternalContext().getRealPath("relatorios");
		String caminhoArquivoJasper = caminhoRelatorio+ File.separator + nomeRelarioJasper+
				".jasper";
		String caminhoArquivoRelatorio = null;
		
		
		
		try {
			JasperReport relatorioJasper = (JasperReport) JRLoader.loadObject(caminhoArquivoJasper);
			JasperPrint impressoraJasper = JasperFillManager.fillReport(relatorioJasper, 
					parametrosRelatorio,conexao);
			JRExporter tipoArquivoExportado = null;
			String extensaoArquivoExportado = "";
			File arquivoGerado = null;
			switch (tipoRelatorio) {
			case RELATORIO_PDF:
				tipoArquivoExportado = new JRPdfExporter();
				extensaoArquivoExportado = "pdf";
				break;
			case RELATORIO_HTML:
				tipoArquivoExportado = new JRHtmlExporter();
				extensaoArquivoExportado = "html";
				break;
			case RELATORIO_EXCEL:
				tipoArquivoExportado = new JRXlsExporter();
				extensaoArquivoExportado = "xls";
				break;
			case RELATORIO_PLANILHA_OPEN_OFFICE:
				tipoArquivoExportado = new JROdtExporter();
				extensaoArquivoExportado = "ods";
				break;
			default:
				tipoArquivoExportado = new JRPdfExporter();
				extensaoArquivoExportado = "pdf";
				break;
			}
			
			caminhoArquivoRelatorio = caminhoRelatorio + File.separator+nomeRelatorioSaida+"."+
			extensaoArquivoExportado;
			arquivoGerado = new File(caminhoArquivoRelatorio);
			tipoArquivoExportado.setParameter(JRExporterParameter.JASPER_PRINT,impressoraJasper);
			tipoArquivoExportado.setParameter(JRExporterParameter.OUTPUT_FILE,arquivoGerado);
			tipoArquivoExportado.exportReport();
			arquivoGerado.deleteOnExit();
			InputStream conteudoRelatorio = new FileInputStream(arquivoGerado);
			arquivoRetorno = new DefaultStreamedContent(conteudoRelatorio,"application/"+
			extensaoArquivoExportado,nomeRelatorioSaida+"."+extensaoArquivoExportado);
		} catch (JRException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		return arquivoRetorno;
		
	}
	
	private Connection getConexao() throws UtilException{
		Connection conexao  = null;
		
		try {
			Context initContext = new InitialContext();
			Context envContext = (Context) initContext.lookup("java:/comp/env/");
			DataSource ds = (DataSource) envContext.lookup("jdbc/FinanceiroDB");
			conexao = ds.getConnection();
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return conexao;
	}
}

Se alguém já fez essa aplicação do livro ou algo parecido me ajude não consigo achar o erro já pesquisei na net e tudo desde já agradeço a ajuda de todos.

Criado 4 de janeiro de 2013
Respostas 0
Participantes 1