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 :

EJB3 qui appelle EJB2 [EJB]


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Par défaut EJB3 qui appelle EJB2
    Sous JBoss4.2.2GA , je cherche à appeler un ejb2 à partir d'un ejb3

    D'apres les docs, il "suffirait" d'écrire dans mon ejb3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @EJB(mappedName="ejb/xx/AdminLocal", beanInterface=AdminLocal.class ) AdminLocal adminLocal;
    ...
    List<AdministrateurData> list = adminLocal.getListeAdministrateurs();
    Mais j'obtiens l'erreur

    Non matching type for inject of field: com.xx.interfaces.AdminLocal com.xx.ejb.Eproc3Bean.adminLocal for type: $Proxy90 of jndiName env/com.xx.ejb.Eproc3Bean/adminLocal
    intfs: , com.xx.interfaces.AdminLocalHome

    Dans mon ejb3, Le seul truc qui marche pour moi est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    @Resource SessionContext sc;
    ....
    AdminLocalHome adminLocalHome = (AdminLocalHome) sc.lookup("ejb/xx/AdminLocal");
    AdminLocal adminLocal = adminLocalHome.create();
    List<AdministrateurData> list = adminLocal.getListeAdministrateurs();
    Quelques précisions :
    - Mon ejb3 est seul dans un jar (sans fichier META-INF/ejb-jar.xml)
    - Mon ejb2 est dans un autre jar (avec les fichiers META-INF/ejb-jar.xml et META-INF/jboss.xml ci-dessous)

    META-INF/ejb-jar.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     <session >
             <description><![CDATA[]]></description>
     
             <ejb-name>Admin</ejb-name>
     
             <home>com.xx.interfaces.AdminHome</home>
             <remote>com.xx.interfaces.Admin</remote>
             <local-home>com.xx.interfaces.AdminLocalHome</local-home>
             <local>com.xx.interfaces.AdminLocal</local>
             <ejb-class>com.xx.ejb.AdminBean</ejb-class>
             <session-type>Stateless</session-type>
             <transaction-type>Container</transaction-type>
     
    </session>
    META-INF/jboss.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <session>
             <ejb-name>Admin</ejb-name>
             <jndi-name>ejb/xx/Admin</jndi-name>
             <local-jndi-name>ejb/xx/AdminLocal</local-jndi-name>
     
            <method-attributes>
            </method-attributes>
    </session>
    Bien sur, je préférerai injecter mon ejb2 avec la notation @EJB(...) plus cool à utiliser...

    So I need help please...

  2. #2
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Par défaut
    En fait, j'ai un peu progresser dans la recherche de mon problème

    Ca marche si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @EJB(mappedName="ejb/xx/AdminLocal") AdminLocalHome adminLocalHome;
    ...
    AdminLocal adminLocal = adminLocalHome.create();
    Y a pas moyen d'éviter le "adminLocalHome.create()" ?

  3. #3
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Par défaut
    Bonne question. C'est un EJB 2.X donc tu as besoin de la méthode create() de la Home interface pour créer un objet EJB pour le client.

  4. #4
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Par défaut
    oui ca semble être la seule solution

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

Discussions similaires

  1. Shell qui appelle un xterm et lance des commandes
    Par Krispy dans le forum Linux
    Réponses: 6
    Dernier message: 09/03/2006, 17h35
  2. Qui appelle paint() ??
    Par oodini dans le forum 2D
    Réponses: 8
    Dernier message: 25/01/2006, 09h56
  3. [PL/SQL] Trigger qui appelle une procédure
    Par alex6891 dans le forum Oracle
    Réponses: 5
    Dernier message: 19/01/2006, 09h01
  4. [JTable] [FocusListener] Savoir le composant qui appelle
    Par IvanPopov dans le forum Composants
    Réponses: 7
    Dernier message: 27/07/2005, 13h55
  5. Procedures stockées qui appellent un autre ?
    Par Tchinkatchuk dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 09/05/2005, 09h30

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