мы получаем это исключение:JSF - SessionExpirationPhaseListener на кластере JBoss
TimeoutException: JBAS010213: Не удается получить блокировки по умолчанию-хост/...
Мы используем эту PhaseListener в нашей сети приложение для захвата тайм-аут сеанса запросов Ajax и перенаправление индекса (мы заподозрить это может быть связано, но мы не знаем):
public class SessionExpirationPhaseListener implements PhaseListener {
@Override
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
@Override
public void beforePhase(PhaseEvent event) {
}
@Override
public void afterPhase(PhaseEvent event) {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest httpRequest = (HttpServletRequest) context.getExternalContext().getRequest();
if (httpRequest.getRequestedSessionId() != null && !httpRequest.isRequestedSessionIdValid()) {
String facesRequestHeader = httpRequest.getHeader("Faces-Request");
boolean isAjaxRequest = facesRequestHeader != null && facesRequestHeader.equals("partial/ajax");
// navigate to home page only for ajax requests
if (isAjaxRequest) {
ConfigurableNavigationHandler handler = (ConfigurableNavigationHandler) context.getApplication().getNavigationHandler();
handler.performNavigation("home");
}
}
}
}
Мы запускаем кластер JBoss с двумя узлами (mod_cluster + apache) и включаем SSO. Вы, ребята, знаете, что может быть неправильно? Или, по крайней мере, указать нам в правильном направлении?
Thanks, С уважением.
Какую версию JBoss вы используете? Вы включили режим липкого сеанса? –
Federico, мы используем JBoss EAP 6.3 и включен режим липкого сеанса. – Mateo