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

Wildfly/JBoss Java Discussion :

[EJB3] 'Passivation' d'un Stateful Session Bean


Sujet :

Wildfly/JBoss Java

  1. #1
    Membre régulier
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Points : 97
    Points
    97
    Par défaut [EJB3] 'Passivation' d'un Stateful Session Bean
    Bonjour, je tiens dans un premier a remercier l'équipe de developpez.com, d'avoir
    séparer les diverses rubriques J2EE en sous forum. C'est tres bien

    Je viens de developpez un session Bean stateful, et lorsque mon serveur (JBoss v.4.0.4 RC1) souhaite "passivate" mon ejb, une exception est levé,
    Voici la trace:
    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
    16:59:09,306 ERROR [SimpleStatefulCache] problem passivation thread
    javax.ejb.EJBException: Could not passivate; failed to save state
    	at org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.passivateSession(StatefulSessionFilePersistenceManager.java:355)
    	at org.jboss.ejb3.cache.simple.SimpleStatefulCache.passivate(SimpleStatefulCache.java:193)
    	at org.jboss.ejb3.cache.simple.SimpleStatefulCache$SessionTimeoutTask.run(SimpleStatefulCache.java:128)
    Caused by: java.lang.ClassCastException: [Ljava.lang.Class;
    	at org.jboss.serial.persister.ClassReferencePersister.writeData(ClassReferencePersister.java:42)
    	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:117)
    	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerOutput.writeObject(DataContainer.java:260)
    	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:81)
    	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:46)
    	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:117)
    	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerOutput.writeObject(DataContainer.java:260)
    	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:81)
    	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:46)
    	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:117)
    	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerOutput.writeObject(DataContainer.java:260)
    	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:81)
    	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:46)
    	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:117)
    	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerOutput.writeObject(DataContainer.java:260)
    	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:81)
    	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:46)
    	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:117)
    	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerOutput.writeObject(DataContainer.java:260)
    	at org.jboss.serial.persister.ArrayPersister.saveObjectArray(ArrayPersister.java:96)
    	at org.jboss.serial.persister.ArrayPersister.writeData(ArrayPersister.java:87)
    	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:117)
    	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerOutput.writeObject(DataContainer.java:260)
    	at org.jboss.serial.io.JBossObjectOutputStream.writeObjectOverride(JBossObjectOutputStream.java:111)
    	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:287)
    	at org.jboss.serial.io.MarshalledObject.<init>(MarshalledObject.java:51)
    	at org.jboss.ejb3.stateful.StatefulBeanContext.writeExternal(StatefulBeanContext.java:368)
    	at org.jboss.serial.persister.ExternalizePersister.writeData(ExternalizePersister.java:45)
    	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:117)
    	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerOutput.writeObject(DataContainer.java:260)
    	at org.jboss.serial.io.JBossObjectOutputStream.writeObjectOverride(JBossObjectOutputStream.java:111)
    	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:287)
    	at org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.passivateSession(StatefulSessionFilePersistenceManager.java:343)
    	... 2 more
    mon session bean implémente bien l'interface Serializable, et ne contient que des attributs eux meme Serializable (des entity beans, des java.util.List, String etc..)
    donc je ne vois pas trop d'ou ça peu venir,
    Je ne post pas le code mon EJB, cela me semble inutile.

    Merci pour votre aide/

  2. #2
    Membre régulier
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Points : 97
    Points
    97
    Par défaut
    Bien personne ne ma répondu

    Mais j'ai tout de même un peu avancer, en effet mon session bean comme je l'ai expliquer précédement possede des entity Beans comme attribut.
    Lorsque mon session bean n'est pas initialiser, tous les attribut valent null, la serialisation ne pose aucun probleme.
    Parcontre lorsque que les entity beans ont été instanciés, la serialisation échoue.
    Etant donné que les entity beans sont serializable je ne comprend pas d'ou cela peut venir.

    Je me demande si le fait que certain attribut de mes entity beans n'étant pas en mode 'Eager' ,c 'est a dire que certain attribut de mes beans n'ont pas été instancié avec les valeurs de la base de donné, je pouvais obtenir cette erreurs.

    Merci pour vos indices.

  3. #3
    Membre régulier
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Points : 97
    Points
    97
    Par défaut
    Apparemen c'est peut etre un bug de la version 4.0.4 RC1 de jboss car je viens d'essayer avec la version finale (4.0.4.GA patch 1) est cela fonctionne.

Discussions similaires

  1. [EJB3] ConcurrentAccessException avec un stateful session bean
    Par Grosgrognon dans le forum Java EE
    Réponses: 2
    Dernier message: 23/12/2010, 12h46
  2. [JNDI] [EJB3] - Références JNDI dans un session bean
    Par motorenshi dans le forum Java EE
    Réponses: 2
    Dernier message: 01/09/2009, 22h47
  3. [EJB Stateful] Fonctionnement des EJB Stateful Session Bean
    Par T`lash dans le forum Java EE
    Réponses: 3
    Dernier message: 15/04/2008, 03h10
  4. [EJB Session] webservice et stateful session bean
    Par batotoba dans le forum Java EE
    Réponses: 4
    Dernier message: 17/07/2007, 00h22
  5. problème d'injection (?) d'un session bean EJB3 dans une servlet
    Par toomsounet dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 11/03/2007, 02h26

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