Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/06/2014, 10:12
ganhan
 
Fecha de Ingreso: mayo-2009
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Descargar y abrir pdf en navegador

Buenas,

Tento una apliación en JSF 2 que cuando le doy un boton se crea un pdf. Estoy intentando que dicho pdf se descargue y se abra en una nueva pestaña del navegador pero lo que sucede es que durante la ejecución del código no existe ningún problema, pero en vez de abrir dicho pdf, el navegador se queda "pensando"

El código del botón de la pagina es el siguiente
Código HTML:
<h:commandLink value="PDF" target="_blank"
 action="#{generarPDF}" /> 

Y el código del metodo es el siguiente
Código HTML:
File file = new File(ruta, nombre);
            FacesContext facesContext = FacesContext.getCurrentInstance();  
            ExternalContext externalContext = facesContext.getExternalContext();  
            HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();  

            BufferedInputStream input = null;  
            BufferedOutputStream output = null;
            
            try {  
                // Open file.                                                                                          
                input = new BufferedInputStream(new FileInputStream(file), DEFAULT_BUFFER_SIZE);  

                // Init servlet response.  
                response.reset();             
                response.setHeader("Content-Type", "application/pdf"); 
                response.setHeader("Cache-Control", "no-cache");
                response.setHeader("Content-Length", String.valueOf(file.length()));            
                response.setHeader("Content-Disposition", "inline; filename=\"Proyecto_1.pdf\"");  
                output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE);  

                // Write file contents to response.  
                byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];  
                int length;  
                while ((length = input.read(buffer)) > 0) {  
                    output.write(buffer, 0, length);  
                }              
                 // Finalize task.  
                output.flush();                          
            }finally{  
                output.close();  
                input.close();  
            }         
            facesContext.responseComplete(); 
¿Alguno es capaz de ver el porque no se abre el pdf?

Gracias y un saludo