我正在尝试使用FacesContext invalidateSession
方法在注销时清除会话。但是,当我尝试再次登录时,我收到了错误
组件ID form-dynamicTableBean0:devicesTable-dynamicTableBean0:j_idt1454:已在视图中找到DNP_ANALOGS。
似乎会议尚未结清。 这是我的退出代码:
public void logout() {
// ((HttpSession)
// FacesContext.getCurrentInstance().getExternalContext().getSession(true)).invalidate();
// redirect to your login view:
try {
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext()
.getRequest();
request.logout();
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
ec.invalidateSession();
weblogic.servlet.security.ServletAuthentication.invalidateAll(request);
FacesContext.getCurrentInstance().getExternalContext().redirect(ec.getRequestContextPath() + "/login.html");
}
catch (Exception e) {
logger.error("Log out failed:", e);
}
}
如果我注释掉这两行......
ec.invalidateSession();
weblogic.servlet.security.ServletAuthentication.invalidateAll(request);
我没有收到错误,但是会话没有清除,我仍然可以看到上一次会话中的内容。
如何正确清除会话,或者您认为错误与注销有关?