IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Probleme avec @ViewScoped


Sujet :

JSF Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 27
    Par défaut Probleme avec @ViewScoped
    Bonsoir !
    J'ai un problème vraiment bizarre ! J'utilise JSF2 .. J'ai crée un formulaire en liaison avec un bean managé ! Dans un premier temps en utilisant l'annotation @RequestScoped tout va bien , j'ai décidé après de changer la portée de mon bean en @ViewScoped ! Et bien là bizarrement j'ai cette ligne d'exception que je n'arrive pas à comprendre !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    GRAVE: Error Rendering View[/ajout_client.xhtml]
    java.io.NotSerializableException: java.lang.Object
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
    	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
    	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
    	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
    	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346)
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154)
    	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
    	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
    	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
    	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
    	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
    	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
    	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
    	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
    	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
    	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
    	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
    	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
    	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
    	at java.util.HashMap.writeObject(HashMap.java:1001)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
    	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
    	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
    	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
    	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
    	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
    	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346)
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154)
    	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
    	at java.util.HashMap.writeObject(HashMap.java:1001)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
    	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
    	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
    	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
    	at com.sun.faces.renderkit.ClientSideStateHelper.doWriteState(ClientSideStateHelper.java:325)
    	at com.sun.faces.renderkit.ClientSideStateHelper.writeState(ClientSideStateHelper.java:173)
    	at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:122)
    	at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:166)
    	at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)
    	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:418)
    	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
    	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
    	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    	at java.lang.Thread.run(Thread.java:662)

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    est-ce-que vous avez dans votre classe implements Serializable??

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    car j'ai déjà eu ce truc une fois et en cherchant sur le net j'ai trouvé qu'il faut enlevé l’implémentation de serializable et il ne faut pas injecter en tant que view scoped
    regarde ce lien pour mieux comprendre si vous voulez http://stackoverflow.com/questions/9...dardsessionfac

    Bon Courage !

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 27
    Par défaut
    Mon bean managé implémente l'interface Serializable .. Le fait de ne pas l'implémenter génère encore une exception ! Dans mon cas c'est obligatoire ! Le problème c'est que même en cherchant sur le web je n'ai rien trouvé !

  5. #5
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Remplace ton view state saving à server ou lieu de client je pense que ça résoudra ton problème

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Citation Envoyé par samisum41 Voir le message
    Mon bean managé implémente l'interface Serializable .. Le fait de ne pas l'implémenter génère encore une exception ! Dans mon cas c'est obligatoire ! Le problème c'est que même en cherchant sur le web je n'ai rien trouvé !
    Il n' y a pas que le managedBean qui doit implémenter la classe Serializable, mais aussi tous les objets qui risquent d'être manipulés dans ta page xhtml. En gros, si tu affiches une liste d'employés, ta classe Employé doit aussi implémenter cette interface, ainsi que tous ses attributs (si ils sont des objets).

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 27
    Par défaut
    Citation Envoyé par omarcisses Voir le message
    Remplace ton view state saving à server ou lieu de client je pense que ça résoudra ton problème
    J'ai ajouté le parametre de context dont t'as parlé dans le fichier web.xml

    <context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
    </context-param>

    Cette fois-ci l'application ne démarre même pas

    Etat HTTP 404

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 27
    Par défaut
    Citation Envoyé par N4rc0 Voir le message
    Il n' y a pas que le managedBean qui doit implémenter la classe Serializable, mais aussi tous les objets qui risquent d'être manipulés dans ta page xhtml. En gros, si tu affiches une liste d'employés, ta classe Employé doit aussi implémenter cette interface, ainsi que tous ses attributs (si ils sont des objets).
    J'ai respecté ceci et pourtant ca ne change rien

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    on peut voir le code s'il vous plait peut être on aura une idée

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 27
    Par défaut
    Comme l'a mentionné omarcisses j'ai ajouté dans mon fichier web.xml la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <context-param>
    		<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    		<param-value>server</param-value>
    </context-param>

  11. #11
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Je pense que tu as un objet non serialisable. a ta place je vais commenter ligne par ligne afin de savoir lequel

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 27
    Par défaut
    Citation Envoyé par omarcisses Voir le message
    Je pense que tu as un objet non serialisable. a ta place je vais commenter ligne par ligne afin de savoir lequel
    Mais mon problème est résolu là grâce à toi ! Je l'ai mentionné

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo