Pessoal, tô com o seguinte problema: Fiz um relatorio no iReport 4.7 com acesso ao banco de dados e tudo mais. Dentro da ferramenta eu consigo visualizar o relatorio com os dados, mas quando chamo o relatório pela aplicação java não traz nada. Alguém poderia me dizer o que fiz de errado? Eu uso hibernate com JPA, JSF 2.0, Primefaces. Já tentei de outra forma mas o relatório abre em branco. Segue meu codigo abaixo:
package managedbean;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.servlet.ServletContext;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperRunManager;
import utils.Util;
@ManagedBean(name = "rptClientesPorCPFCNPJBean")
@RequestScoped
public class RptClientesPorCPFCNPJBean {
private String nomeArquivo = "Clientes.pdf";
JasperPrint jasperPrint;
public void init() throws JRException {
String reportPath = Util.getRealDiretorio("/paginas/cadastros/restrito/relatorios/rptClientesPorCPFCNPJ.jasper");
jasperPrint = JasperFillManager.fillReport(reportPath, new HashMap(), new JREmptyDataSource());
}
public void PDF() throws JRException, IOException {
init();
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.addHeader("Content-disposition", "attachment; filename="+nomeArquivo);
ServletOutputStream servletOutputStream = response.getOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream);
FacesContext.getCurrentInstance().responseComplete();
}
}
Meu XHTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition template="/layout/template.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:jr="http://jasperreportjsf.sf.net/tld/jasperreports-jsf-1_0.tld">
<ui:define name="body">
<h:form>
<p:panel header="Tipos de relatórios">
<p:commandButton value="PDF" action="#{rptClientesPorCPFCNPJBean.PDF}" ajax="false"></p:commandButton>
</p:panel>
</h:form>
</ui:define>
</ui:composition>