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 :

[CMP] Context et variable [EJB2.1 Entity]


Sujet :

Java EE

  1. #1
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 162
    Points : 75
    Points
    75
    Par défaut [CMP] Context et variable
    J'ai un EntityBean de type CMP.

    Est-ce que si je définis une valeur pour une variable private dans la méthode setEntityContext(EntityContext ctx) genre comme çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private String cache = null;
    ...
    public void setEntityContext(EntityContext) throws EJBException, RemoteException {
         cache = "toto";
    }
    Est-ce que cette valeur sera fixée pour toutes mes instances de beans ensuite et utilisable dans les méthodes métiers ?
    ---
    Erwan

  2. #2
    Membre confirmé
    Avatar de bmoussaud
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 218
    Points : 555
    Points
    555
    Par défaut
    Oui tu peux.
    Le mieux est d'associer ta valeur à affecter au cache dans le descripteur de deploiement de ton ejb.
    Ainsi dans ton code devient:
    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
     
    public void setEntityContext(EntityContext context) {
     
        this.context = context;
     
        try {
          InitialContext ic = new InitialContext();
          // Récupère la valeur du parametre 'cache' 
          //auprès du conteneur à l'aide du nom JNDI
          cache= (String) ic.lookup("cache");
     
        } 
        catch (Exception e) {
          throw new EJBException("Erreur lors de l'acces au contexte : " + e.getMessage());
        }
      }
    Benoit Moussaud - XebiaLabs - Automatisation des déploiements. Screencast & Demo

  3. #3
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 162
    Points : 75
    Points
    75
    Par défaut
    Quel est l'avantage de ta solution ?
    ---
    Erwan

  4. #4
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 162
    Points : 75
    Points
    75
    Par défaut
    Ah, et aussi, là j'ai l'impression qu'on récupère la valeur de cache mais on l'a fixe pas !

    Je dis n'importe quoi ?

    Peux tu un peu détailler !
    ---
    Erwan

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Qu'entends tu par fixer ?

    t as une autre possibilité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private String toto = lookupEntityContext() 
    public String lookupEntityContext() {
      try {
                Context c = new InitialContext();
                return (String) c.lookup("toto");
            }
            catch(NamingException ne) {
                Logger.getLogger(getClass().getName()).log(Level.SEVERE,"exception caught" ,ne);
                throw new RuntimeException(ne);
            }
        }
      }
    avantage un seul appel

  6. #6
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 162
    Points : 75
    Points
    75
    Par défaut
    Je veux dire qu'on ne lui donne pas de valeur !
    ---
    Erwan

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    jette un oeil au post plus haut

  8. #8
    Membre confirmé
    Avatar de bmoussaud
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 218
    Points : 555
    Points
    555
    Par défaut
    Dans ton descripteur de déploiement tu ajoutes la balise:Env-Entry
    Exemple
    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
     
    <enterprise-beans>
     
            <session>
                <ejb-name>MonEJB</ejb-name>
                 <local-home>fr.xebia.ejb.MyEJBLocalHome</local-home>
                <local>fr.xebia.ejb.MyEJBLocal</local>            
                <ejb-class>fr.xebia.ejb.MyEJBLocalImpl</ejb-class>
                <session-type>Stateless</session-type>
                <transaction-type>Container</transaction-type>
     
                <env-entry>
                    <env-entry-name>cache</env-entry-name>
                    <env-entry-type>java.lang.String</env-entry-type>
                    <env-entry-value>toto</env-entry-value>
                </env-entry>         
    ......
    Dans le code, tu effectue un lookup, sur 'cache' et tu obtiendras la valeur 'toto'
    Benoit Moussaud - XebiaLabs - Automatisation des déploiements. Screencast & Demo

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

Discussions similaires

  1. variable de context ou variable globale (GlobalMap)
    Par sibu dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 12/04/2018, 18h59
  2. Plugin Struts et variable de contexte
    Par nono44200 dans le forum Struts 1
    Réponses: 2
    Dernier message: 17/07/2007, 14h49
  3. Variables de Context
    Par ruda.tom dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 21/02/2007, 23h19
  4. [FOP] [ERROR] non-static variable this cannot be referenced from a static context
    Par cash3000 dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/05/2006, 16h46
  5. [XSLT] Réutiliser un contexte mémorisé dans une variable
    Par camboui dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 02/01/2006, 12h49

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