Pessoal… alguém sabe pq q aparece esse erro???
eu nao alterei nada no código, e apareceu isso…
[code]HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: getOutputStream() has already been called for this response
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.IllegalStateException: getOutputStream() has already been called for this response
org.apache.catalina.connector.Response.getWriter(Response.java:599)
org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
org.apache.jsp.GeraRelatorio_jsp._jspService(GeraRelatorio_jsp.java:132)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.[/code]
a única parte do meu código q usa isso, é essa, onde eu baixo o arquivo q eu criei:
[code]// baixando o Relatorio.xls para o usuario
File t_file = new File(request.getRealPath("") + "/temp/Relatorio.xls");
long fileSize = t_file.length();
InputStream in = new FileInputStream(t_file);
if (in != null)
{
response.reset();
response.setContentType("application/x-msdownload");
String s = "attachment; filename=" + t_file.getName();
response.setHeader("Content-Disposition", s);
response.setContentLength((int) fileSize);
byte[] b = new byte[2048];
int len = 0;
while ((len = in.read(b)) > 0)
{
response.getOutputStream().write(b, 0, len);
}
in.close();
olha… não é possível… copiei e colei o código aqui, e deu esse mesmo erro: java.lang.IllegalStateException: getOutputStream() has already been called for this response
Isso ta com cara de conflito… sei lá… ta falando q a função já foi chamada por essa response…
File t_file = new File(request.getRealPath("") + "/temp/relatorio.xls");
long fileSize = t_file.length();
InputStream in = new FileInputStream(t_file);
if (in != null)
{
response.reset(); //response.setContentType("application/ms-excel"); //Abre o arquivo no bowser
response.setContentType("application/download");
String s = "attachment; filename=" + t_file.getName();
response.setHeader("Content-Disposition", s);
response.setContentLength((int) fileSize);
byte[] b = new byte[2048];
int len = 0;
while ((len = in.read(b)) > 0)
{ //response.getOutputStream().write(b, 0, len);
out.print(b);
}
in.close();
}
out.clear();
out = pageContext.pushBody();
Nao deu certo… e pior que esse erro se dá do nada…
Bem, eu tenho um arquivo “…temp/Relatorio.xls” que está no meu servidor, e queria fazer o download normal desse arquivo para o usuário… alguém tem alguma rotina que faça isso?