Foros del Web » Programación para mayores de 30 ;) » Java »

Excepción con getOutputStream

Estas en el tema de Excepción con getOutputStream en el foro de Java en Foros del Web. Estoy desarrollando una aplicación web en Java / Struts. En una página JSP tengo que poner un listado de enlaces, los cuáles, al pulsarlos, invoca ...
  #1 (permalink)  
Antiguo 05/01/2007, 06:28
 
Fecha de Ingreso: julio-2006
Mensajes: 60
Antigüedad: 17 años, 9 meses
Puntos: 0
Excepción con getOutputStream

Estoy desarrollando una aplicación web en Java / Struts. En una página JSP tengo que poner un listado de enlaces, los cuáles, al pulsarlos, invoca una descarga del archivo elegido al ordenador cliente.

Pero me lanza el error "getOutputStream() ya ha sido llamado para esta respuesta". He revisado el código y no tengo más que una sola llamada a ese método, y no entiendo por qué me salta. ¿Alguien podría ayudarme?

Este es el código que lanza la excepción:

Código PHP:
package biblioteca.registrados.archivos;
import biblioteca.factory.ArchivosDAO;
import biblioteca.factory.MysqlDAOFactory;
import biblioteca.sesion.ArchivoVO;
import biblioteca.sesion.ProyectoVO;

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

/**
 * Maneja la lógica de negocio para descargar el archivo asociado a un Proyecto de Fin de Carrera.
 *
 * @poseidon-object-id [Im20e52fem10f92dd2f0amm7df1]
 * @author David Rguez.
 */
public class DescargaFicheroBean {

/**
 *
 *
 * @poseidon-object-id [Im20e52fem10f92dd2f0amm65fb]
 * @return
 * @param req
 * @param res
 */
    
public synchronized ActionMessages descargar(HttpServletRequest reqHttpServletResponse res) {
        
// Variables
        
HttpSession sesion req.getSession();
        
ActionMessages errores null;
        
Collection archivos = (Collection)sesion.getAttribute("losFicheros");
        
ArchivoVO archivo null;
        
int id Integer.parseInt(req.getParameter("id"));
        
int contador 0;
        
int bytesLeidos 0;
        
byte[] buffer = new byte[8192];
        try {
            
// Recuperamos la ruta
            
Iterator arch archivos.iterator();
            while (
contador id){
                
contador++;
                
archivo = (ArchivoVOarch.next();
            }
            
String ruta archivo.getRuta();
            
int tamaño archivo.getTamaño();
            
String nombre archivo.getNombreArchivo();
            
// Completamos la ruta
            
String rutaCompleta sesion.getServletContext().getRealPath(ruta);
            
// Recuperamos el contenido del archivo al que apunta la ruta y lo colocamos en la respuesta
            // También rellenamos el resto de información
            
res.setContentLength(tamaño);
            
res.setContentType("APPLICATION/OCTET-STREAM");
            
//res.setContentType("application/x-file-download");
            
res.setHeader("Content-disposition""attachment; filename=\"" nombre+"\"");
            
ServletOutputStream salida res.getOutputStream();
            
FileInputStream descarga = new FileInputStream(rutaCompleta);
            while ((
bytesLeidos descarga.read(buffer08192)) != -1) {
                
salida.write(buffer0bytesLeidos);
            }
            
salida.flush();
            
salida.close();
            
descarga.close();
            return 
null;
        }catch (
Exception e) {
            if (
errores == null)
                
errores = new ActionMessages();
            
errores.add("errorGeneral",new ActionMessage("error.general"));
            return 
errores;
        }
    }
 } 
Gracias.
  #2 (permalink)  
Antiguo 05/01/2007, 11:24
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Excepción con getOutputStream

http://www.forosdelweb.com/f45/illegalstateexception-jsp-453752/

El mismo problema inicial
  #3 (permalink)  
Antiguo 05/01/2007, 14:21
 
Fecha de Ingreso: julio-2006
Mensajes: 60
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Excepción con getOutputStream

Ya había visto ese hilo, pero lo cierto es que no acabo de entender cuál es el problema :S:S:S
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:14.