Mise en situation
Il vous est peut-être déjà arrivé de vouloir ouvrir plusieurs onglets sur une même application web.
Mais voilà, une certaine configuration dans ADF peut vous amenez à tomber sur un des deux messages ci dessous :
ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase RESTORE_VIEW 1[[ javax.faces.application.ViewExpiredException: viewId:/dashboard - ADF_FACES-30107:The view state of the page has expired. Reload the page.
ou
En raison de l''inactivité, le délai imparti à la session s''est écoulé et la session n''est plus active. La page sera automatiquement rechargée dans 10 secondes. Sinon, cliquez ici.
Ne vous inquiétez pas, il existe une solution à votre problème.
Solution
Il faut configurer le fichier web.xml de votre View-Controller deux paramètres :
oracle.adf.view.rich.CLIENT_STATE_METHOD
Valeurs disponibles : « all » ou « token »
Défaut : token
Défini le type de stockage de l’état de la vue côté client.
org.apache.myfaces.trinidad.CLIENT_STATE_MAX_TOKENS
Valeurs disponibles : Les entiers positifs
Défaut : 15
Défini le nombre d’états qui peuvent être mémorisés.
Exemple
Voici un exemple de configuration de ces deux paramètres dans le fichier web.xml.
<web-app ...> <context-param> <description>client state saving method</description> <param-name>oracle.adf.view.rich.CLIENT_STATE_METHOD</param-name> <param-value>token</param-value> </context-param> <context-param> <description>max back button use</description> <param-name>org.apache.myfaces.trinidad.CLIENT_STATE_MAX_TOKENS</param-name> <param-value>1</param-value> </context-param> <!-- ... --> </web-app>