java.lang.IllegalStateException: getOutputStream()
Publicado por antonio26 (1 intervención) el 18/02/2008 16:45:31
Buenas a todos,
He creado un JSP, que genera una tabla HTML y un link "exportar a excel". Al pulsar el link se abre el excel en otra ventana con los datos de la tabla HTML.
El funcionamiento es el siguiente: En el jsp obtengo una lista de objetos, los cuales paso al método generarExcel, que mediante POI HSSF devuelve un objeto HSSFWorkbook. El objeto HSSFWorkbook se genera correctamente y a la hora de pintarlo es cuando da el error.
Aunque los datos me los muestra en otra ventana, no puedo guardarlos y luego tratarlos. Siempre me da el mismo error(java.lang.IllegalStateException: getOutputStream() ya ha sido llamado para esta respuesta), y me sale el aviso del explorer de guardar o cancelar y al dar a guardar lo guarda correctamente, pero luego si lo intentas abrir no lo abre. Da ERROR.
Igualmente, si en el response.setHeader sustituyes inline, por attachment te sale un mensaje del explorer de abrir, guardar o cancelar, y no te deja abrir y al guardar pasa lo mismo que lo dicho anteriormente.
Bueno dejo el código por si alguién tiene alguna idea de lo que me pasa.
Gracias.
<%@page import="java.util.List"%>
<%@page import="es.cronos.mir.infra.catalogo.generarExcel.*"%>
<%@page import="es.cronos.mir.infra.abstracion.dominio.InfraestructuraPublica"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFWorkbook"%>
<%
try {
List<? extends InfraestructuraPublica> infraes = (List<? extends InfraestructuraPublica>)session.getAttribute("infraestructuras");
//response.reset();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename=infraestructuras.xls");
HSSFWorkbook objWB = GenerarExcel.generarExcel(infraes);
byte[] wbBytes = objWB.getBytes();
response.setContentLength(wbBytes.length);
response.setBufferSize(wbBytes.length);
response.getOutputStream().write(wbBytes,0,wbBytes.length);
response.getOutputStream().flush();
System.out.println("Hemos cerrado todo");
} catch (Exception e) {
// No se muestra nada
}
%>
He creado un JSP, que genera una tabla HTML y un link "exportar a excel". Al pulsar el link se abre el excel en otra ventana con los datos de la tabla HTML.
El funcionamiento es el siguiente: En el jsp obtengo una lista de objetos, los cuales paso al método generarExcel, que mediante POI HSSF devuelve un objeto HSSFWorkbook. El objeto HSSFWorkbook se genera correctamente y a la hora de pintarlo es cuando da el error.
Aunque los datos me los muestra en otra ventana, no puedo guardarlos y luego tratarlos. Siempre me da el mismo error(java.lang.IllegalStateException: getOutputStream() ya ha sido llamado para esta respuesta), y me sale el aviso del explorer de guardar o cancelar y al dar a guardar lo guarda correctamente, pero luego si lo intentas abrir no lo abre. Da ERROR.
Igualmente, si en el response.setHeader sustituyes inline, por attachment te sale un mensaje del explorer de abrir, guardar o cancelar, y no te deja abrir y al guardar pasa lo mismo que lo dicho anteriormente.
Bueno dejo el código por si alguién tiene alguna idea de lo que me pasa.
Gracias.
<%@page import="java.util.List"%>
<%@page import="es.cronos.mir.infra.catalogo.generarExcel.*"%>
<%@page import="es.cronos.mir.infra.abstracion.dominio.InfraestructuraPublica"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFWorkbook"%>
<%
try {
List<? extends InfraestructuraPublica> infraes = (List<? extends InfraestructuraPublica>)session.getAttribute("infraestructuras");
//response.reset();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename=infraestructuras.xls");
HSSFWorkbook objWB = GenerarExcel.generarExcel(infraes);
byte[] wbBytes = objWB.getBytes();
response.setContentLength(wbBytes.length);
response.setBufferSize(wbBytes.length);
response.getOutputStream().write(wbBytes,0,wbBytes.length);
response.getOutputStream().flush();
System.out.println("Hemos cerrado todo");
} catch (Exception e) {
// No se muestra nada
}
%>
Valora esta pregunta


0