Estuve probando de varias maneras hasta que entendí que lo estaba haciendo
mal por que el getOutputStream se usa con los jsp también, entonces me
tiraba la excepción no en ese código si no mas adelante.Una de las maneras
de resolverlo es con un servlet (en el proyecto que estoy es algo viejo y lo
estaban haciendo directamente y no me di cuenta).

   Gracias por la ayuda.

Saludos, Eze

El día 18/07/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> escribió:


Intenta lo siguiente:

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;
filename=cuenta_corriente.xls");
HSSFWorkbook wb = this.getCabeceraMovimientosCSV(nombre); //genero un
excel con el api de POI  de Apache

//Podes obtener una tira de bytes desde tu objeto wb ???
//suponete que puedas hacer lo sig
byte[] wbBytes = wb.getBytes();
response.setContentLength(wbBytes.length);
response.setBufferSize(wbBytes.length);
response.getOutputStream().write(wbBytes,0,wbBytes.length);
response.getOutputStream().flush();


>   Estoy haciendo un pagina con jsp con un link que genera un excel y se
> pueda abrir o guardar, al hacer la siguiente función me tira esta
> excepción.
> Les pongo el código:
>
> *public void generarCSV(String nombre, HttpServletResponse
response)throws
> Exception{
>    response.setContentType("application/vnd.ms-excel");
>    response.setHeader("Content-Disposition", "attachment;
> filename=cuenta_corriente.xls");
>    ServletOutputStream o = response.getOutputStream();
>    HSSFWorkbook wb = this.getCabeceraMovimientosCSV(nombre); //genero un
> excel con el api de POI  de Apache
>    wb.write(o);
>    o.flush();
>    //o.close();  lo puse de prueba pero tampoco funcionó
> }*
>
> Si alguno se topo con un problema como este y me quiere dar una mano voy
a
> estar muy agradecido por que busque en internet  y probé de muchas
maneras
> pero sin suerte.
>
> Gracias, Eze
>
>    La excepción es esta:
> java.lang.IllegalStateException: getOutputStream() ya ha sido llamado
para
> esta respuesta
> at org.apache.coyote.tomcat5.CoyoteResponse.getWriter(
CoyoteResponse.java
> :614)
> at org.apache.coyote.tomcat5.CoyoteResponseFacade.getWriter(
> CoyoteResponseFacade.java:210)
> at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java
:167)
> at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(
JspWriterImpl.java
> :160)
> at org.apache.jasper.runtime.PageContextImpl.release(
PageContextImpl.java
> :235)
> at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(
> JspFactoryImpl.java:160)
> at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(
> JspFactoryImpl.java:120)
> at org.apache.jsp.cuenta_005fcorriente_005fcsv_jsp._jspService
> (cuenta_005fcorriente_005fcsv_jsp.java:114)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
> at org.apache.jasper.servlet.JspServletWrapper.service(
> JspServletWrapper.java:311)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:284)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:204)
> at org.apache.catalina.core.StandardWrapperValve.invoke(
> StandardWrapperValve.java:257)
> at org.apache.catalina.core.StandardValveContext.invokeNext(
> StandardValveContext.java:151)
> at org.apache.catalina.core.StandardPipeline.invoke(
StandardPipeline.java
> :567)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(
> StandardContextValve.java:245)
> at org.apache.catalina.core.StandardContextValve.invoke(
> StandardContextValve.java:199)
> at org.apache.catalina.core.StandardValveContext.invokeNext(
> StandardValveContext.java:151)
> at org.apache.catalina.core.StandardPipeline.invoke(
StandardPipeline.java
> :567)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
> :184)
> at org.apache.catalina.core.StandardValveContext.invokeNext(
> StandardValveContext.java:151)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
> :164)
> at org.apache.catalina.core.StandardValveContext.invokeNext(
> StandardValveContext.java:149)
> at org.apache.catalina.core.StandardPipeline.invoke(
StandardPipeline.java
> :567)
> at org.apache.catalina.core.StandardEngineValve.invoke(
> StandardEngineValve.java:156)
> at org.apache.catalina.core.StandardValveContext.invokeNext(
> StandardValveContext.java:151)
> at org.apache.catalina.core.StandardPipeline.invoke(
StandardPipeline.java
> :567)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java
:206)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
> :833)
> at
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection
> (Http11Protocol.java:732)
> at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
> :619)
> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java:688)
> at java.lang.Thread.run(Thread.java:534)
> _______________________________________________
> Iinfo@listas.fi.uba.ar
> http://listas.fi.uba.ar/mailman/listinfo/iinfo
> http://www.sindominio.net/ayuda/preguntas-inteligentes.html

_______________________________________________
Iinfo@listas.fi.uba.ar
http://listas.fi.uba.ar/mailman/listinfo/iinfo
http://www.sindominio.net/ayuda/preguntas-inteligentes.html

_______________________________________________
Iinfo@listas.fi.uba.ar
http://listas.fi.uba.ar/mailman/listinfo/iinfo
http://www.sindominio.net/ayuda/preguntas-inteligentes.html 

Responder a