Problema com o sendRedirect!

6 respostas
jmedeiros

Pessoal !

Quando passo um response.sendRedirect(“erro.jsp”); a seguinte mensagem de erro aparece!

java.lang.IllegalStateException
    at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:423)
    at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:125)
    at servlet.InsereCadastroServlet.processRequest(InsereCadastroServlet.java:78)
    at servlet.InsereCadastroServlet.doPost(InsereCadastroServlet.java:101)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Estou utilizando esse redirect em outra servlet e funciona normalmente!

o que pode estar acontecendo?

6 Respostas

furutani

Provavelmente vc esta usando o sendRedirect depois de ter comitado o response.
Manda o fonte pra gente dar uma olhada.

jmedeiros
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        
        Fachada facade = new Fachada();
        
        
        String escola = request.getParameter("escola");
        String diretoria = request.getParameter("diretoria");
        String numeroOficio = request.getParameter("numeroOficio");
        String diaOficio = request.getParameter("diaOficio");
        String mesOficio = request.getParameter("mesOficio");
        String anoOficio = request.getParameter("anoOficio");
        String diaVisita = request.getParameter("diaVisita");
        String mesVisita = request.getParameter("mesVisita");
        String anoVisita = request.getParameter("anoVisita");
        String resumo = request.getParameter("resumoOficio");
        String situacao = request.getParameter("situacao");
        String problemas = request.getParameter("problemas");
        String solucao = request.getParameter("solucao");
        String outros = request.getParameter("outros");
        
        
        //Cria Data
        String dataOficio = anoOficio+"-"+mesOficio+"-"+diaOficio;
        String dataVisita = anoVisita+"-"+mesVisita+"-"+diaVisita;
        
        //Cria Objeto Escola
        Escola e = new Escola(escola);
        int codEscola = facade.retornaCodEscola(e);
        if(codEscola == -1)
            response.sendRedirect("erro.jsp");
        
        
        //Cria Objeto Diretoria
        Diretoria d = new Diretoria(diretoria);
        int codDiretoria = facade.retornaCodDiretoria(d);
        if(codDiretoria == -1)
            response.sendRedirect("erro.jsp");
        
        
        //Cria Objeto Cadastro
        
        Cadastro c = new Cadastro(e,d, numeroOficio, dataOficio, dataVisita,
                resumo, situacao, problemas, solucao, outros);
        
        if(facade.inserirCadastro(c))
            response.sendRedirect("confirma.jsp");
        else
            response.sendRedirect("erro.jsp");;
        
        
        
        out.close();

Minha Aplicação utiliza um servlet para fazer o login e eu uso um response.sendRedirect para enviar pra página de cadastro, nesta página de cadastro eu uso este servlet acima, sendo que ele da aquele erro no response!

furutani

Qual é a linha 78 e 101?
Experimenta tirar esse out.close()

jmedeiros

Se ele entrar em qualquer response aquela mensagem de erro aparece!

jgbt

ja tentou:

response.sendRedirect("/erro.jsp");

[]'s

jmedeiros

Já sim, pesquisei na net e descobri que tenho que usar um tal de include!

Criado 6 de abril de 2005
Ultima resposta 7 de abr. de 2005
Respostas 6
Participantes 3