понедельник, 23 июля 2012 г.

ICEFaces и окошко User Session Expired

При использовании ajax получаем вплывающее окно
========================
       User Session Expired
To reconnect click the Reload button on the
browser or click the button below
             Reload

========================
При этом в логах Glassfish отмечается строка вида:


WARNING: queued exception
javax.faces.application.ViewExpiredException: viewId:/index.xhtml - View /index.xhtml could not be restored.

Одна из причин подобного поведения - использования базовой авторизации. AJAX запросы не отправляют информацию об авторизации.

Как одно из решений данной проблемы - использовать следующий код в web.xml


<context-param>
<param-name>com.sun.faces.enableRestoreView11Compatibility</param-
name> <param-value>true</param-value>
</context-param>

Это заставит работать в режиме совместимости с JSF1.1

Можно "подавить" вывод этого окошка кодом:

<context-param>
<param-name>org.icefaces.disableDefaultErrorPopups</param-name>
<param-value>true</param-value>
</context-param>

Комментариев нет:

Отправить комментарий