Bom dia caros gujeiros de plantão. Estou desenvolvendo uma aplicação Web com JSF2, Primefaces, Facelet’s e nesse momento comecei a fase de desenvolvimento de relatórios e tenho o seguinte problema,
o meu relatório é gerado em branco, estou tentando gerar em pdf.
Segue meu código:
public void imprimeComprovante(){
HttpServletResponse res = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
// Configura o response para suportar o relatório
res.setContentType("application/pdf");
// response.addHeader("Content-disposition", "inline; filename=\"arquivo.pdf\"");
res.addHeader("Content-disposition", "attachment; filename=\"relatorio.pdf\"");
String pathJasper = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/WEB-INF/classes/br/ufu/prograd/siprot/relatorios/requerimento/")+"/";
String path = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/");
//DAOFactory fab_postgres = DAOFactory.getDAOFactory(DAOFactory.POSTGRES);
Map parametros = new HashMap();
parametros.put("PathRequerimentoSimples", pathJasper+"requerimentoDinfa.jasper");
parametros.put("matricula", "93280");
parametros.put("nmAluno", "Anelita Florentino Leal Basílio");
parametros.put("nmCurso", "Curso de Graduação em Enfermagem : Bacharelado e Licenciatura");
parametros.put("nrProtocolo", getProtocolo().getNrNumeroProtocolo());
parametros.put("nmSolicitacao", getSol().getNmSolicitacao());
try {
// Aqui ele cria o relatório
JasperPrint impressao = JasperFillManager.fillReport(pathJasper+"requerimentoDinfa.jasper", parametros);
// Grava o relatório em disco em pdf
JasperExportManager.exportReportToPdfFile(impressao, path+ "/relatorio.pdf");
// Redireciona para o pdf gerado
JasperExportManager.exportReportToPdfStream(impressao, res.getOutputStream());
// Salva o estado da aplicação no contexto do JSF
FacesContext.getCurrentInstance().getApplication().getStateManager().saveView(FacesContext.getCurrentInstance());
// Fecha o stream do response
FacesContext.getCurrentInstance().responseComplete();
res.sendRedirect("relatorio.pdf");
} catch (Exception e) {
log.error(e.getMessage(),e);
}
}
ta não brother, vou postar o jrxml, outra coisa, meu dataSource é vazio, e tem um esquema de quando o Detail estiver vazio, setei para mostrar todas as sessões.
Dei um clean na IDE e o relatório funcionou. Cada vez que eu edito o jrxml eu o salvo dentro da aplicação, depois disso eu dou um refresh mas aparentemente não foi suficiente. Obrigado pela atenção de todos.