Onde esta setando no response?

1 resposta
R

Mandei uma duvida ontem, com um erro que estava dando na minha aplicação, e o Matheus me respondeu que eu estava setando algo no response e depois dando o sendRedirect…

por isso acontecia o erro…

erro 500 e Cannot forward after response has been committed

ta ai as 2 funções que o jsp chama… na verdade, chama so o execute…

onde eu to escrevendo no response.??? e pq isso funciona no OC4J e não no tomcat???

public String execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
String tpCalculo = request.getParameter(“tpCalculo”);

relCliente(request,response);

return proximo;

}

private void relCliente(HttpServletRequest request, HttpServletResponse response)  throws Exception {

//Recupera parametros do request

String cdCalculo = request.getParameter(argCdCalculo);

String cdPessoaSeguradora = request.getParameter(argCdPessoaSeguradora);

String cdSeguradora = request.getParameter(argCdSeguradora);
String strResultado = NgcRelatorios.getInstancia().getRelatorioCliente(cdPessoaSeguradora, cdSeguradora, cdCalculo);

String aux = request.getContextPath();
String endPdf = aux+"/fax/"+strResultado+".pdf";
response.sendRedirect(endPdf);

HttpSession sessao = request.getSession(true);
sessao.setAttribute("dadosRelatorio",strResultado);   
this.proximo="relatorio_calculo_cliente.jsp";

}

1 Resposta

R

Rodrigo, acho que seu problema está nestas linhas:

String aux = request.getContextPath();
String endPdf = aux+"/fax/"+strResultado+".pdf";
response.sendRedirect(endPdf);

HttpSession sessao = request.getSession(true);
sessao.setAttribute("dadosRelatorio",strResultado);
this.proximo="relatorio_calculo_cliente.jsp";

A partir do momento que vc dá um sendRedirect, vc instrui o browser do cliente a abrir um novo recurso, interrompendo o fluxo atual. Acho que o tomcat está reclamando porque você está colocando código que manipula o objeto de requisição depois de ter instruído o cliente a fazer uma nova requisição. Isso não faz sentido nenhum… =)

Abraços!

Criado 8 de março de 2005
Ultima resposta 8 de mar. de 2005
Respostas 1
Participantes 2