2012-04-06 2 views
0

인덱스 페이지 내 포털의 로그인 페이지에서 탐색, 상황이JSF 리디렉션 예외

14:24:35,579 INFO [CmwSessionHelperBean] ---WILL REDIRECT TO ABS URL: http://hi 
tachi.mygravitant.com 
14:24:35,580 ERROR [STDERR] java.lang.IllegalStateException 
14:24:35,582 ERROR [STDERR]  at org.apache.catalina.connector.ResponseFacade. 
sendRedirect(ResponseFacade.java:435) 
14:24:35,590 ERROR [STDERR]  at com.example.cloud.common.jsf.core.beans.Cmw 
SessionHelperBean.createCmwUserSession(CmwSessionHelperBean.java:269) 

당신이 나에게 발생 시킬수이 예외를 피하기 위해 제안을주지하시기 바랍니다 수 :

음, 예외가 발생? 리디렉션이 완료되었지만이 예외 때문에 포털로 돌아 왔을 때 더 이상 제대로 작동하지 않습니다 ...

답변

1

ExternalContext#redirect()을 사용하면 JSF- 안전한 방식으로 리디렉션을 수행해야합니다 .

public void createCmwUserSession() throws IOException { 

    if (!(marketVo.getAbsoluteUrl() != null && marketVo.getAbsoluteUrl().equals(absoluteUrlToRedirect))) { 
     logger.info("---WILL REDIRECT TO ABS URL: " + absoluteUrlToRedirect); 
     FacesContext.getCurrentInstance().getExternalContext().redirect(absoluteUrlToRedirect); 
    } 
} 

이 방법은 암시 적 FacesContext#responseComplete() 호출합니다, 당신은 그것을 직접 수행 할 필요가 없습니다.

또한 동일한 응답에서 여러 번 리디렉션 메서드를 호출하지 않거나 나중에 탐색을 수행해야합니다.