O que eu quero é passar os parâmetros e imprimir o relatório utilizando o .jasper criado pelo ireport. Todos os lugares monstram o cara fazendo uma conexão, eu não quero isso pq uso hibernate.
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
//InputStream reportStream = context.getExternalContext().getResourceAsStream("/reports/relatorioCarro.jasper");
InputStream reportStream = context.getExternalContext().getResourceAsStream("/reports/carros.jasper");
if (reportStream != null) {
ServletOutputStream servletOutputStream = response.getOutputStream();
Map<Object, Object> parameters = new HashMap<Object, Object>();
DAOFactory factory = BaseDAOFactory.getFactory();
CarroDAO carroDAO = factory.getCarroDAO();
List<Carro> resultado = (List<Carro>) carroDAO.listaCarros(getControlSecurityBean().getProdutorId());
for (Carro carroCorrente : resultado) {
parameters.put("descricao", carroCorrente.getDescricao());
parameters.put("codigo", carroCorrente.getCodigoCarro());
JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameters);
response.setContentType(ConstantesBeans.REPORT_CONTENT_TYPE);
response.setHeader(ConstantesBeans.REPORT_HEADER_VALUE, ConstantesBeans.REPORT_HEADER_VALUE_ATTACHMENT_PDF);
servletOutputStream.flush();
servletOutputStream.close();
context.responseComplete();
}
esse código só imprime em branco.