IllegalStateException: Cannot forward after

2 respostas
J

Ola pessoal… estou com um probleminha… tenho um filtro para verifica se o usuario esta ou nao logado no sistema mas ele esta me dando a seguinte excecao:

java.lang.IllegalStateException: Cannot forward after response has been committed
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:101)

esse e meu codigo :

public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain ) throws IOException, ServletException {
		// TODO Auto-generated method stub
		
 		if (((HttpServletRequest)request).getSession().getAttribute("autenticado")==null) { //sessão não autenticada
 			 	((HttpServletResponse)response).sendRedirect("Login.jsf");
 			}
 			chain.doFilter(request,response);
 		}

valeu pela força :grin:

2 Respostas

J

Olá,

Acho que o código certo seria:

public void doFilter(ServletRequest request, ServletResponse response,
         FilterChain chain ) throws IOException, ServletException {
      // TODO Auto-generated method stub
      
       if (((HttpServletRequest)request).getSession().getAttribute("autenticado")==null) { //sessão não autenticada
              ((HttpServletResponse)response).sendRedirect("Login.jsf");
          } else {
               chain.doFilter(request,response);
          }
       }

Não tenho certeza que é isto, mas espero que isto te ajude

Abraços

J

Consegui… abaixo a solucao :

if (((HttpServletRequest)request).getSession().getAttribute("autenticado")==null) { //sessão não autenticada
 			 	((HttpServletResponse)response).sendRedirect("Login.jsf");
 				((HttpServletResponse)response).getWriter().flush();
 				((HttpServletResponse)response).getWriter().close();
 				return;
 			}
 			chain.doFilter(request,response);
 		}

valeu pela força :grin:

Criado 2 de agosto de 2006
Ultima resposta 2 de ago. de 2006
Respostas 2
Participantes 2