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

Java EE Discussion :

EJB Stateless, comportement bizarre


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 38
    Par défaut EJB Stateless, comportement bizarre
    Bonjour,

    Dans le cadre de ma formation aux EJB 3 je me suis amusé à crée un EJB Stateless avec l'implémentation suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    @Stateless
    public class Compteur {
        private int compteur = 0;
     
        public int incrementer() {
            System.out.println(compteur);
            compteur++;
        }
    }


    Quelle ne fut pas ma surprise lorsque j'ai vu les logs de JBoss écrivant :
    0
    1
    2
    3
    4
    ...


    Ayant retenu la définition suivante de l'EJB Stateless :
    << Stateless (sans état) => les attributs de l’EJB sont réinitialisées
    entre chaque appel même s’il s’agit du même client >>

    Donc je m'attendais plutôt à ce qu'il fasse :
    0
    0
    0
    0
    0


    Auriez-vous une explication s'il vous plaît ?

  2. #2
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Pourrait-on voir l'appel?

  3. #3
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Citation Envoyé par Ernesto_X Voir le message
    Ayant retenu la définition suivante de l'EJB Stateless :
    << Stateless (sans état) => les attributs de l’EJB sont réinitialisées
    entre chaque appel même s’il s’agit du même client >>

    Donc je m'attendais plutôt à ce qu'il fasse :
    0
    0
    0
    0
    0


    Auriez-vous une explication s'il vous plaît ?
    Voilà ce que dit wikipedia à ce sujet
    A stateless session bean is a distributed object that does not have an associated conversational state, thus allowing concurrent access to the bean. The contents of instance variables are not guaranteed to be preserved across method calls. All instances of a stateless session bean are identical
    Les attributs des beans sans états ne sont pas garantis d'être toujours convervés. Aussi entre chaque appel, le conteneur peut utiliser des beans differents avec differentes valeurs pour les attributs.

    Donc le résultat est tout à fait normal, et tu peux aussi avoir des résultats differents si tu fais plusieurs appels de façon simultanée.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 38
    Par défaut
    Merci pour cette réponse !!!

    Je commençais à douter du fait que le stateless était bien déclaré dans mon test !

    Ainsi l'état du bean n'est pas garantit entre deux appels !
    et non pas "non conservé" comme je le croyais !

    En effet, un même stateless peut être employé par plusieurs clients en même temps, ce qui n'est pas le cas pour un stateful (1 stateful <-> 1 client).


    Merci !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/09/2014, 16h18
  2. [EJB3] Un Ejb Stateless qui se comporte comme unEjb Stateful
    Par clem_alain dans le forum Java EE
    Réponses: 5
    Dernier message: 04/02/2011, 12h00
  3. [ACESS][MEMO][ISNULL]Comportement bizarre
    Par seb.49 dans le forum ASP
    Réponses: 2
    Dernier message: 09/06/2004, 10h44
  4. [HttpClient] comportement bizarre, saute des catch()...
    Par iubito dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 04/02/2004, 15h25
  5. [Sybase] Comportement bizarre d'une table
    Par sdozias dans le forum Sybase
    Réponses: 4
    Dernier message: 03/02/2004, 10h39

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