Не зная точно, каковы Ваши требования, вот то, что я сделал, чтобы видеть, что договоры проходят от iPhone: Соедините Mac на Ethernet, совместно используйте его сеть по аэропорту и подключите iPhone к той беспроводной сети. Выполненный Соглядатай Wireshark или Пакета на Mac
Это должно сработать:
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/sessionExpired.jsf</location>
</error-page>
Другое решение - создать CustomViewHandler, расширяющий ViewHandler и переопределите метод restoreView
@Override
public UIViewRoot restoreView(FacesContext facesContext, String viewId) {
/**
* {@link javax.faces.application.ViewExpiredException}. This happens only when we try to logout from timed out pages.
*/
UIViewRoot root = null;
root = parent.restoreView(facesContext, viewId);
if(root == null) {
root = createView(facesContext, viewId);
}
return root;
}
Затем вам нужно добавить его в свой faces-config.xml
<view-handler>com.demo.CustomViewHandler</view-handler>
. Это предотвратит получение вами ViewExpiredException
Решением является использование собственного события истечения сессии
Richfaces.
Добавьте это на страницу, срок действия которой истекает:
<a4j:region>
<script language="javascript">
A4J.AJAX.onExpired = function(loc, expiredMsg){
alert('expired!');
window.location = "/login.jsf";
}
</script>
</a4j:region>
Более подробную информацию можно найти в документации RichFaces: http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/ArchitectureOverview.html#SessionExpiredHandling