To tentando usar o ireport com o icefaces mais não estou conseguindo o codigo que estou usando funciona no JSF mais quando coloco no JSF+icefaces ele passa por todo o codigo e não da erro mais também não apresenta nada.
public String botao(){
cidadeDao cidade = new cidadeDao();
List lista = cidade.getList();
FacesContext context = FacesContext.getCurrentInstance();
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(lista);
JasperPrint print;
try {
String reportName = "D:\\Projeto Relatorio\\WebApplication3\\web\\relatorio\\report1.jasper";
print = JasperFillManager.fillReport(reportName, null, ds);
System.out.println("REPORT NAME "+reportName);
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
byte x1[] = JasperExportManager.exportReportToPdf(print);
System.out.println("BYTE "+x1);
writeBytesAsAttachedTextFile(x1, "report1.pdf");
System.out.println("----");
} catch (Exception e) {
}
}
protected void writeBytesAsAttachedTextFile(byte[] bytes, String fileName) throws Exception {
if (bytes == null) {
throw new Exception("Array de bytes nulo.");
}
if (fileName == null) {
throw new Exception("Nome do arquivo é nulo.");
}
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\";");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
facesContext.renderResponse();
facesContext.responseComplete();
}
Alguem ja tentou fazer isso no IceFaces?