JSF problème après le redémarrage du serveur: Pas de sauvegardes de l'état d'affichage pourrait être trouvé
Continuons la résolution de ce problème, j'ai remplacé Mojarra par MyFaces et de mise à niveau du JDK et quand je continue à travailler sur le formulaire après le redémarrage du serveur, message d'erreur suivant apparaît:
Une Erreur S'Est Produite:
/food.xhtmlNo saved view state could be found for the view identifier: /food.xhtml
Caused by:
javax.faces.application.ViewExpiredException - /food.xhtmlNo saved view state could be found for the view identifier: /food.xhtml
Console:
SEVERE: Exception loading sessions from persistent storage
java.lang.IllegalStateException: unread block data
at java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode(ObjectInputStream.java:2376)
Trace De La Pile:
javax.faces.application.ViewExpiredException: /food.xhtmlNo saved view state could be found for the view identifier: /food.xhtml
at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Et mon 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>PORTAL</display-name>
<session-config>
<session-timeout>180</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.xhtml</welcome-file>
<welcome-file>index.htm</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>*.xhtml</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
</web-app>
N'avez-vous jamais rencontré un tel rapport d'erreur?
- Oui, mojarra. J'ai "résolu" à l'aide de la redirection de la servlet. Je suis rediriger application de
error.xhtml
page avec de rapport ("le serveur est redémarré") si l'un des 403/404/500 erreurs est produite. Ce n'est pas une solution de@ViewScoped
problème, mais c'est assez pour moi...
Vous devez vous connecter pour publier un commentaire.
Cela peut être un peu tard pour répondre, mais j'ai eu le même problème et j'ai passé pas mal de temps pour le résoudre. Alors, j'ai pensé que cela pourrait aider quelqu'un d'autre.
Par défaut,
MyFaces
ne sérialisation de l'etat, même lorsque l'état est sauvegardé sur le serveur, alors queMojarra
ne le fait pas. Donc, si vous avez quelques grains qui ne sont pas sérialisables, ou qui utilisent d'autres graines qui ne sont pas sérialisables, vous verrez que l'erreur (le serveur n'est pas en mesure de sérialiser l'objet).Vous pouvez désactiver la sérialisation donc
MyFaces
commeMojarra
.Vérifier ce lien: ViewScoped Bean cause NotSerializableException
Le problème que vous avez de l'expérience ici est typique, et est dû au fait que par défaut MyFaces génère de façon aléatoire un secret pour encoder l'état d'affichage. Chaque fois que le redémarrage du serveur, une nouvelle secrète aléatoire est généré.
Pour résoudre ce problème, vous devez configurer certains web config, spécialement org.apache.myfaces.SECRET et org.apache.myfaces.MAC_SECRET, de sorte que le même secret est utilisé à chaque fois que votre serveur est redémarré. Mojarra a quelque chose de similaire, mais je ne me souviens pas les param name en ce moment.
Consulter cette page Sécuriser Votre Application avec MyFaces. Vous pourrez y trouver tous les détails dont vous avez besoin pour l'installation de vos cryptage de.
Vous pouvez envoyer vos questions à propos de MyFaces en vous abonnant à Les utilisateurs et les Dev Listes de Diffusion
Illegal key size
exception. Et quand j'ai utiliséSECRET
etMAC_SECRET
params seulement, il jetteinvalid key length
...Comme l'a dit, sur l'autre réponse, il faut définir le SECRET. J'ai suivi les instructions à Secure_Your_Application. J'ai ajouté les lignes ci-dessous à
web.xml
(changer les secrets en conséquence). Et n'oubliez pas de la télécharger à la force illimitée de l'entreprise criminelle commune de la politique de fichiers.<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
n'aide pas 🙁SOLUTION: j'ai dû considérer les classes serializabled et qui n'est pas.
J'ai l'habitude de cette erreur. Je suis à l'aide de myfaces 1.2 et websphere 7, mais alors je n'ai pas de redémarrer le serveur. J'ai d'abord arrêté le serveur, puis a commencé à nouveau plutôt que de faire un redémarrage. Qui ont travaillé.