Ajuda com erro de ireports
Olá pessoal, tudo bem? estou tendo um pequeno problema aqui, e necessito mto de uma ajuda hehe
Vamos lá
Criei um relatório no ireports e exportei o .jasper para meu projeto
Tenho uma classe utilitaria que gostaria de chamar para exibir o relatório conforme segue
meu método dentro do meu bean
bom o caso eh o seguinte
nesse segundo metodo meu objeto relatorios eh um arraylist q esta vindo devidamente preenchido
mas na hora de chamar
da esse erro aqui
java.lang.IllegalStateException: PWC3991: getOutputStream() has already been called for this response
alguem pode dar um help do q se trata?
Vamos lá
Criei um relatório no ireports e exportei o .jasper para meu projeto
Tenho uma classe utilitaria que gostaria de chamar para exibir o relatório conforme segue
public class RelatorioUtils {
//executar relatório através de um JRBeanCollectionDataSource
public static void executaRelatorio(String caminhoRelatorio, Map<String, Object> parametros, String nomeRel, JRBeanCollectionDataSource fonteDados){
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse)context.getExternalContext().getResponse();
//pegar o caminho do arquivo .jasper
InputStream reportStream = context.getExternalContext().getResourceAsStream(caminhoRelatorio);
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename="+ nomeRel +".pdf\"");
response.setContentType("application/download");
response.setHeader("Pragma", "no-cache");
try{
ServletOutputStream servletOutputStream = response.getOutputStream();
//envia parametros para o relatorio
if(parametros==null){
parametros = new HashMap<String, Object>();
}
//enviar para o navegador o pdf gerado
JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parametros,fonteDados);
servletOutputStream.flush();
servletOutputStream.close();
}catch(JRException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}finally{
context.responseComplete();
}
}
}
meu método dentro do meu bean
public void executarRelatorioViaturas(){
relatorios = fabrica.getServicoConsulta(FabricaServicos.RELATORIO).
consultar(ServicoConsulta.RELATORIOS, ConsultaRelatorio.RELATORIOS);
JRBeanCollectionDataSource fonteDados = new JRBeanCollectionDataSource(relatorios);
RelatorioUtils.executaRelatorio("/admin/relatorios/report1.jasper", null, "relatorio", fonteDados);
}bom o caso eh o seguinte
nesse segundo metodo meu objeto relatorios eh um arraylist q esta vindo devidamente preenchido
mas na hora de chamar
da esse erro aqui
java.lang.IllegalStateException: PWC3991: getOutputStream() has already been called for this response
alguem pode dar um help do q se trata?
Jilles Ragonha
Curtidas 0