Olá pessoal,
Venho tentando já a dois dias exibir um PDF com Jasper Report no Wilfly 10.0.0 final.
public void emitirListaRemessa() throws ParserConfigurationException, SAXException, IOException, JRException{
this.embalagens = new GestaoRemessas().embalagemPorIdRemessa(this.remessaselecionada.getRemessaid());
CorreiosBean cb = new CorreiosBean();
cb.lerArquivoXml();
Map<String, Object> parametros = new HashMap<String, Object>();
parametros.put("nrcontrato",cb.getCartaopostagem().getNumcontrato());
parametros.put("nrcodadm",cb.getCartaopostagem().getCodigoadm());
parametros.put("nrcartaopostagem",cb.getCartaopostagem().getNumcartao());
FacesContext facesContext = (FacesContext) FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
response.setContentType("application/pdf");
response.setHeader("Content-disposition","inline;filename=relatorio.pdf");
try {
ServletOutputStream servletOutputStream = response.getOutputStream();
java.io.InputStream reportStream = facesContext.getExternalContext().getResourceAsStream("/resources/relatorios/encomendaFaturarPAC.jasper");//
parametros.put("SUBREPORT_DIR", FacesContext.getCurrentInstance().getExternalContext().getRealPath("/resources/relatorios"));
parametros.put("IMAGE_DIR", FacesContext.getCurrentInstance().getExternalContext().getRealPath("/resources/images"));
BufferedOutputStream bo = new BufferedOutputStream(servletOutputStream); //( new FileWriter (new File ("/relatorios/teste.txt"));
JasperRunManager.runReportToPdfStream(reportStream, bo, parametros,
new JRBeanCollectionDataSource((Collection<?>) this.embalagens, false));// JREmptyDataSource()
// servletOutputStream.flush();
// servletOutputStream.close();
} catch (JRException e) {
e.printStackTrace();
System.out.println("======== erro de PDF 1 "+e.getMessage());
} catch (IOException e) {
e.printStackTrace();
System.out.println("======== erro de PDF 2 "+e.getMessage());
} finally {
facesContext.responseComplete();
}
}`
No xhtml está da seguinte forma:
<p:commandButton title=“Listagem de remessa” value=“Listagem de remessa" rendered=”#{request.isUserInRole(‘1’) or request.isUserInRole(‘507’)}“ action=”#{remessabean.emitirListaRemessa}"> <f:setPropertyActionListener target="#{remessabean.remessaselecionada}" value="#{remessa}" /> </p:commandButton>