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 :

Injection de dépendances lorsque le jar se trouve dans un ear


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité(e)
    Invité(e)
    Par défaut Injection de dépendances lorsque le jar se trouve dans un ear
    Bonjour,

    je n'arrette pas de lire qu'avec les EJB3 fini les lookup et place à l'injection de dépendance.

    Mais comment cela fonctionne t-il concrètement ?

    pour ma part j'effectue encore et toujours mes lookup en EJB3, serait ce une erreur de ma part ?

    dans cette documentation à la page 8, on nous montre un exemple d'appel de méthodes d'un EJB grâce à l'injection de dépendance.

    pour ma part, cela ne fonctionne pas et je persiste à procéder de la sorte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
      Context context = new InitialContext();       
      InterfaceBean beanRemote = (InterfaceBean)context.lookup("Server/Bean/remote");
             System.out.println(beanRemote.message("Mon ejb 3 me renvoit le message"));
    quelqu'un pourrait m'éclairer ?

    merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Quel est le problème exactement avec l'annotation @EJB ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @stateless
    public class MonEJB implements MonEJBRemote
    {
       @EJB(name="UnAutreEJBFacade/local")
       private UnAutreEJBFacadeLocal facade = null;
    ...
    }
    Tu utilises un EAR pour le déploiement ?

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    oui j'utilise un ear pour le déploiement.

    voila le code de mon client original et fonctionnel

    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
     
    package client_test;
     
    import java.rmi.RemoteException;
    import interfaces.InterfaceBean;
    import javax.ejb.CreateException;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
     
    public class Client_test {
     
       public static void main(String[] args) throws RemoteException, CreateException {
     
    	   try {
             Context context = new InitialContext();
     
             InterfaceBean beanRemote = (InterfaceBean)context.lookup("Server/Bean/remote");
             System.out.println(beanRemote.message("Mon ejb 3 me renvoit le message"));
     
    	   } catch (NamingException e) {
             e.printStackTrace();
          }
       }
    }
    comment remplacer le lookup par l'injection ?
    désolé mais je n'y parvient pas.

    mon client est un client console externe
    il possède l'interface de mon stateless nommé Bean

    merci

    édit:
    nb: je pourrais enlever le trow CreateException c'est un reste d'un test précédent.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Par défaut
    Si ton client est "externe", de base tu ne peux pas faire d'injection d'EJB.

  5. #5
    Invité(e)
    Invité(e)
    Par défaut
    ok !

    l'injection est donc utilisée par exemple pour ma FacadeSession
    donc plus de ServiceLocator pour le lookup

    c'est ça ?

    en revanche si j'utilise un client distant, dans ce cas la je reste "contraint" de faire le lookup

    merci

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Par défaut
    Citation Envoyé par amazoone Voir le message
    ok !
    l'injection est donc utilisée par exemple pour ma FacadeSession
    donc plus de ServiceLocator pour le lookup
    c'est ça ?
    oui
    en revanche si j'utilise un client distant, dans ce cas la je reste "contraint" de faire le lookup
    En fait le lookup est contraint principalement quand ton client est non managé.
    Les Composants managés par un serveur JEE5 sont à la base les Servlets, les EJB, les beans jsf etc .. A vérifier.

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Pour le client, je ne pense pas que ça puisse fonctionner, tu n'es pas dans le conteneur EJB.
    L'annotation est conçue pour référencer des EJB à l'intérieur d'EJB session.

    Pour un client (Swing par exemple), il faut passer par lookup avec un paramétrage adéquat de l'initialContext

    flûte, j'avais oublier de valider le message, du coup, j'suis grillé !
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Invité(e)
    Invité(e)
    Par défaut
    merci quand même

    vaut mieux deux justifications plutôt qu'une

Discussions similaires

  1. Fichier ".jar" pas trouvé -- dans une "User library"
    Par chat_roux dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 11/10/2008, 22h16
  2. .jars non trouvés avec Tomcat
    Par Invité dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 03/05/2007, 09h26
  3. Dépendance entre jar situés au meme niveau dans un EAR
    Par florentB dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/04/2007, 17h09
  4. [Integration] [EasyMock] Injection de dépendance à l'éxécution
    Par frangin2003 dans le forum Spring
    Réponses: 2
    Dernier message: 06/03/2007, 11h06
  5. Spring + TagSupport et injection de dépendance
    Par worldchampion57 dans le forum Spring Web
    Réponses: 2
    Dernier message: 26/02/2007, 09h01

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