2013-05-21 4 views
0

Dans mon projet Web, la plupart des pages utilisent des beans gérés Scope. Cela fonctionne très bien, mais parfois, je remarque que si je m'éloigne de la page pendant un moment, comme, 10 minutes, quand je reviens à la page, tout dans la page cesse de fonctionner, et aucune erreur de console n'est montrée dans le serveur. Je pense que cela est dû à la vie d'une vue, mais n'ont rien trouvé à ce sujet. Où puis-je trouver des informations à ce sujet? Y a-t-il un moyen de configurer la durée de vie d'une vue?Quelques questions sur la durée d'affichage/la durée de vie

J'utilise apache tomcat 7. Ci-dessous est mon fichier de configuration web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
id="WebApp_ID" version="3.0"> 
<display-name>AtualyGestao</display-name> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    <welcome-file>index.jsf</welcome-file> 
</welcome-file-list> 
<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.jsf</url-pattern> 
</servlet-mapping> 
<context-param> 
    <param-name>primefaces.THEME</param-name> 
    <param-value>home</param-value> 
</context-param> 

Répondre

1

Vous devriez le voir si vous avez prêté attention à la réponse HTTP de la demande ajax dans le jeu d'outils de développeur de navigateur (appuyez sur F12 dans Chrome/Firebug/IE9):

enter image description here

en effet, le SESSI a expiré. Une explication détaillée sur la raison pour laquelle ceci est un problème pour JSF peut être trouvée dans cette réponse: javax.faces.application.ViewExpiredException: View could not be restored.

Les requêtes AJS JSF n'ont par défaut aucune forme de retour en cas d'exceptions. Comment résoudre ce problème est déjà répondu ici: Session timeout and ViewExpiredException handling on JSF/PrimeFaces ajax request.

+0

mais il n'y a pas de configuration de durée de vie? Que faire si vous voulez laisser les pages en vie plus longtemps avant de perdre la session? –

+0

Il s'agit simplement de la configuration standard du délai d'expiration de session de l'API Servlet dans 'web.xml'. Voir aussi parmi d'autres http://stackoverflow.com/questions/7449468/default-session-expiration-timeout/7449488#7449488. Ceci n'est en outre pas lié à JSF. – BalusC