Comment résoudre ViewExpiredException dans JSF 1.2
J'ai une demande à l'aide de JSF1.2 + Richfaces 3.3.3 Final, MyFaces 1.2.7, Spring + Hibernate, et j'ai le ci-dessous exception, à chaque fois, quand j'ai vider le cache et les cookies du navigateur et connectez-vous de nouveau à ma demande.
javax.des visages.application.ViewExpiredException - /app/projet/index.jsf
Pas de sauvegardes de l'état d'affichage pourrait être trouvée pour l'identifiant de la vue: /app/projet/index.jsf
Quelqu'un peut-il me faire savoir comment résoudre exception ci-dessus?
OriginalL'auteur Kapil Nimje | 2011-11-29
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le résoudre en définissant l'état de la méthode de sauvegarde de
client
au lieu deserver
de sorte que les vues sont stockées (en forme sérialisée, bien sûr) dans un champ caché du formulaire POST, au lieu de la session dans le côté serveur (qui est à son tour d'être référencé parJSESSIONID
cookie; de sorte que tous les points de vue ne sera perdu lorsque vous supprimez le cookie de session ou lorsque la session arrive à expiration). Vous pouvez le faire en ajoutant le contexte suivant paramètre à laweb.xml
:Si ce qui précède n'est pas une option pour une raison quelconque, alors le mieux que vous puissiez faire est de manipuler doucement comme une page d'erreur en
web.xml
comme suit:Ce n'est pas résoudre l'exception, mais au moins vous offre l'occasion de le dire dans la page d'erreur de l'utilisateur final sur le problème et quelles sont les actions de l'utilisateur final. Vous pouvez même laisser la page d'erreur pointer vers la page de connexion, et à condition de rendre un message sur le pourquoi de l'utilisateur final est en face de la page de connexion à nouveau.
Voir aussi:
ViewExpiredException
de la balise de la page wikiCela ne cause aucun dommage à votre demande. Seule l'utilisation de la bande passante va augmenter un peu (mais pas tant que ça si vous activer la compression GZIP sur le serveur; vous serez à même de gagner plus si vous ne l'avez pas déjà configuré le serveur pour utiliser la compression GZIP).
J'ai également essayé ci-dessous approche, mais je mon cas, une fois que l'exception est soulevée de son pas redirigé vers sessionExpired page, au lieu de son redirigé vers la page de connexion par défaut. \n <erreur-page> <exception de type>javax.des visages.application.ViewExpiredException</exception-type> <location>/erreurs/sessionexpired.jsf</position> </erreur-page>.
Ensuite, vous avez un autre
<error-page>
dansweb.xml
qui a un plus globale<exception-type>
l'emportent sur lesServletException
. Vous auriez besoin de créer unFilter
qui attrape unServletException
et renvoie la cause principale de la place. Voir aussi stackoverflow.com/questions/3206922/...Si je pouvais vous donner plus de points, je le ferais.
OriginalL'auteur BalusC