Problema com getOutputStream()

4 respostas
L

Pessoal estou com um erro ao usar o getOutputStream() que não consigo descobrir o que está acontecendo!!!

Segue meu código abaixo e em seguida a mensagem de erro:

==================================

<%@ page language=java import=<a href="http://java.io">java.io</a>.<em>,java.util.</em>,javax.servlet.* %>

<jsp:useBean  id=“objCliente”  class=“org.templojava.Cliente” />
<%

String nmusicac2=request.getParameter(“mcomprada”);

String nvalorc2=request.getParameter(“vcomprada”);

String nbandac2=request.getParameter(“bcomprada”);

String nfilec2=request.getParameter(“mp3comprada”);

String login=(String)session.getAttribute(“Logado”);
objCliente.setLogin(login);

objCliente.setCreditos(nvalorc2);

objCliente.CompraMusica();

String dir=“c:/uploads/musica”;
String fileName = nfilec2;

File fAttachStream = new File( dir + fileName ); 
   
  response.setContentType( "APPLICATION/OCTET-STREAM" ); 
  response.setHeader( "Content-Disposition", "attachment;filename=" + fileName ); 
  response.setContentLength( ( int )fAttachStream.length() ); 
  try { 
      
     ServletOutputStream stream = response.getOutputStream();
      
     BufferedInputStream fif = new BufferedInputStream( new FileInputStream( fAttachStream ) ); 
     int data; 
     while( ( data = fif.read() ) != -1 ) { 
         
        stream.write( data ); 
         
     } 
      
     fif.close(); 
     stream.flush();
     stream.close(); 
      
  } catch (IOException e) { 
      
     e.printStackTrace(); 
      
  }

%>

==========================================

Erro:

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:853)

========================================

Mas como assim??? Não estou chamando o getOutputStream() duas vezes!!! :mad:
Alguém sabe me dizer aonde está o erro?

.

4 Respostas

J

Você não está chamando, mas tem “gente” chamando…

use:

out.write&#40;data&#41;;
L

[quote=“jairelton”]Você não está chamando, mas tem “gente” chamando…

use:

out.write&#40;data&#41;;

hum hum… Nada feito, alterei para out.write e continua o mesmo erro…
e eu ainda coloquei comentário nas linhas

//stream.flush&#40;&#41;; //stream.close&#40;&#41;;

J

E comentou a linha…

ServletOutputStream stream = response.getOutputStream();

…tambem?

L

“jairelton”:
E comentou a linha…

ServletOutputStream stream = response.getOutputStream();

…tambem?

Agora sim!!! Coloquei o comentário nesta linha também e deu certo!!! :grin:

Valeu pela força amigão!

.

Criado 24 de julho de 2006
Ultima resposta 25 de jul. de 2006
Respostas 4
Participantes 2