TransWikia.com

Error " getoutputstream () ya ha sido llamado para esta respuesta " al abrir pdf

Stack Overflow en español Asked by Jonathan ch on March 1, 2021

Tengo este código que lo que hace es abrir un PDF que está en una ruta.
Al abrir este archivo, efectivamente lo abre, pero en consola me muestra el error de getoutputstream() has already been called for this response y es molesto porque puede generar errores futuros.
No he logrado hacer que no ocurra ese error y por eso busco ayuda.

        <%@page import="java.io.FileInputStream"%>
        <%@page trimDirectiveWhitespaces="true"%>
        <%@ page language="java" contentType="application/pdf; charset=UTF-8" pageEncoding="UTF-8"%>
        <%@ page import= "java.io.*" %>
        <%

            boolean error=false;
            try {
                String nombreArchivo=request.getParameter("doc");
                Archivos archivo= new Archivos();
                FileInputStream ficheroInput = new FileInputStream("C:\archivo\archivo.pdf");
                int tamanoInput = ficheroInput.available();
                byte[] datosPDF = new byte[tamanoInput];
                ficheroInput.read( datosPDF, 0, tamanoInput);

                response.reset();
                response.resetBuffer();
                response.flushBuffer();
                response.setHeader("Content-disposition","inline; filename=unrt.pdf" );
                response.setContentType("application/pdf");
                response.setContentLength(tamanoInput);
                response.getOutputStream().write(datosPDF);

                ficheroInput.close();

            } catch (Exception e) {
                error=true;
            }
        %>

        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Visor PDF</title>
        </head>
        <body>
        <% if(error){
        %>   
            <h1>Ocurrió un error al cargar el archivo</h1>
        <%}
        %>
        </body>
        </html>

One Answer

Pon esta linea al final:

FacesContext.getCurrentInstance().responseComplete();

antes del ficheroInput.close();

Answered by user130499 on March 1, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP