Exibindo relatório a partir de Manager Bean em JSF

Oi pessoal.

Preciso da ajuda da comunidade.

Estou gerando um relatorio a partir de .jasper em minha aplicação Web, estou trabalhando com JSF no netbeans.

O meu problema é que não consigo exibir o relatório em outra página.

A minha página JSP esta chamando o método gerarHistorico.

Abaixo estou colocando o meu Manager Bean.


 public class ActionRelatorio{  
       
     private static Connection con = null;  
     private static String driver = "com.mysql.jdbc.Driver";  
     private static String endereco = "jdbc:mysql://localhost/sim";  
     private static String user = "root";  
     private static String pass = "root";  
       
     //Lista de paciente a ser exibida  
     private ListDataModel listaParturiente;  
     //Nome para consulta  
     private String nomeConsulta;  
     //Objeto do tipo PacienteFacade para realizar trasação de salvar atualizar etc  
     ParturienteDAO pacDAO;  
       
     private java.util.Date dt_inicial;  
     private java.util.Date dt_final;  
       
     /** 
      * <p>Prefixo do nome do recurso para relatórios compilados.</p> 
      */  
     //private static final String PREFIX = "/WebSim/WEB-INF/classes/org/maternidade/relatorios/";  
     private static final String SUB = "C:/Application of Developed/IDEs/netbeans-5.5.1/workspace/WebSim/src/java/org/maternidade/relatorios/";  
       
     /** 
      * <p>Sufixo do nome do recurso para relatórios compilados.</p> 
      */  
     private static final String SUFFIX = ".jasper";  
       
           
     /** Creates a new instance of ActionReport */  
     public ActionRelatorio() {  
           
         this.pacDAO = new ParturienteDAO();  
         this.setNomeConsulta(null);  
         this.setListaParturiente(null);  
           
     }  
       
       
     public String gerarHistorico(){  
           
         if(listaParturiente != null){  
             Parturiente part = (Parturiente)getListaParturiente().getRowData();  
               
             Map<String,Object> params = new HashMap<String,Object>();  
             params.put("idParturiente",part.getIdPac());  
               
             try{  
                   
                 conexao();  
                 jasperReport("historicoParturiente",params);  
                   
                   
             }catch(Exception e){  
                   
                 System.out.println(e.getMessage());  
             }  
         }  
         return null;  
           
           
     }  
       
     public void gerarRelatorioParto(){  
           
         Map<String,Object> params = new HashMap<String,Object>();  
         params.put("data_inicio",getDt_inicial());  
         params.put("data_fim",getDt_final());  
           
         try{  
               
             conexao();  
             jasperReport("partoRelatorio",params);  
               
               
         }catch(Exception e){  
               
             System.err.println(e.getMessage());  
               
         }  
           
     }  
       
     public void jasperReport(String nome, Map params){  
                           
         try {  
               
             byte[] pdf = JasperRunManager.runReportToPdf(SUB+nome+SUFFIX, params, con);  
               
             FacesContext faces = FacesContext.getCurrentInstance();  
             HttpServletResponse response = (HttpServletResponse)faces.getExternalContext().getResponse();  
             response.setContentType("application/pdf");  
             response.setContentLength(pdf.length);  
             response.setHeader("Content-disposition", "inline");  
               
             response.setHeader("Cache-Control", "cache, must-revalidate");  
             response.setHeader("Pragma", "public");  
            ServletOutputStream out = response.getOutputStream();  
               
             out.write(pdf);  
             StateManager stateManager = (StateManager)faces.getApplication().getStateManager();  
             stateManager.saveSerializedView(faces);  
               
             faces.responseComplete();  
               
         } catch (RuntimeException e) {  
               
             throw e;  
               
         } catch (Exception e) {  
               
             System.out.println(e.getMessage());  
               
             throw new FacesException(e);  
               
         }  
           
                 
         try {  
               
             con.close();  
               
         } catch (SQLException ex) {  
               
             System.out.println(ex.getMessage());  
         }  
           
     }  
       
     //Cria a conexao  
     public void conexao(){  
           
         try{  
             if (con == null || con.isClosed()){  
                 Class.forName(driver);  
                 con = DriverManager.getConnection(endereco,user,pass);  
             }  
               
         }catch(Exception e){  
             System.err.println("Não foi possível conectar ao banco ->");  
             System.err.println(e.getMessage());  
         }  
     }  
       
       
     //Função para realizar busca de Parturiente  
     public String pesquisarParturiente(){  
           
         if(this.getNomeConsulta() == null || this.getNomeConsulta().length() == 0){  
               
             return null;  
               
         }else {  
               
             //Lista de Parturiente.  
             List<Parturiente> lista = pacDAO.buscarParturiente(getNomeConsulta());  
               
             //Verifica se não foi encontrado parturiente.  
             if(lista.size() == 0){  
                   
                 System.out.println("Parturiente não encontrada. Verificar como mostrar um resposta na tela");  
                 return null;  
             }  
               
             //Seta a lista de parturiente encontrado.  
             setListaParturiente(new ListDataModel(lista));  
               
         }  
           
         return null;  
     }  
 }

Por favor me ajudem…irei deventer o este projeto no sábado.