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
[code]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;
}
}
[/code]
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.