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 :

Probleme injection de dépendance


Sujet :

Java EE

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 93
    Par défaut Probleme injection de dépendance
    Bonjour tout le monde.En ce moment je travaille sur une application distribué et on m'a demandé d'utiliser les ejb3, je suis arrivé a implementé les ejb et j'ai pu les tester avec de simple client(des classes avec un main) en utilisant JNDI mais là ou ça coince est quand je veux les appeler a partir de mon appli web j'execute le même code avec la même config JNDI mais je reçois l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Le Nom GestionDeStockBean n'est pas li� � ce Contexte
    sachant que l'EJB et l'app sont déployés sur le même serveur jboss.
    Voici le code de ma classe service ou je veux injecter l'ejb:
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    package service;
     
    import java.util.Iterator;
    import java.util.List;
     
    import javax.annotation.Resource;
    import javax.ejb.*;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
     
     
     
     
    import ejb11.GestionDeStock;
    import ejb11.Produit;
     
    public class ProduitManagerImp implements ProduitManager {
    	//@Resource
    	private GestionDeStock gestionStock;
     
    	public ProduitManagerImp(){
    	      try {
    	          Context context = new InitialContext();
    	          System.out.println("hnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn");
    	          gestionStock = (GestionDeStock) context.lookup("GestionDeStockBean/remote");
    	          System.out.println("hnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn");
    	       } catch (Exception e) {
    	          System.out.print("hna:"+e.getMessage());
    	       }		
    	}
    	@Override
    	public void ajouter(Produit produit) {
    		gestionStock.ajouter(produit);
    	}
     
    	@Override
    	public List<Produit> listerTousLesProduits11() {
    		// TODO Auto-generated method stub
    		return gestionStock.listerTousLesProduits();
    	}
     
    	@Override
    	public Produit rechercherProduit(String id) {
    		// TODO Auto-generated method stub
    		return null;
    	}
     
    }
    l'erreur ce produit a ce niveau là.

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 93
    Par défaut
    J'ai effectué quelque changement dans mon code j'ai ajouté l'annotation @RemoteBinding au niveau de mon ejb dans le projet ejb comme suit:
    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
     
    package ejb11;
     
    import java.util.List;
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
     
    import org.jboss.annotation.ejb.RemoteBinding;
     
    @RemoteBinding(jndiBinding="RemoteGestionDeStockBean")
    @Stateless
    public class GestionDeStockBean implements GestionDeStock {
     
       @PersistenceContext
       EntityManager em;
     
       public void ajouter(Produit produit) {
          em.persist(produit);
       }
     
       public Produit rechercherProduit(String id) {
          return em.find(Produit.class, id);
       }
     
       public List<Produit> listerTousLesProduits() {
          return em.createQuery("SELECT p FROM Produit p ORDER BY p.quantiteEnStock").getResultList();
       }
     
    }
    et j'ai changé le constructeur de l'implémentation de mon service comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	public ProduitManagerImp(){
    	      try {
    	          Context context = new InitialContext();
    	          System.out.println("hnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn");
    	          gestionStock = (GestionDeStock) context.lookup("RemoteGestionDeStockBean");
    	          System.out.println("hnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn");
    	       } catch (Exception e) {
    	          System.out.print("hna:"+e.getMessage());
    	       }		
    	}
    maintenant je reçois l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    hna:$Proxy91 cannot be cast to ejb11.GestionDeStock
    Ce qui est bizzare est quand je regarde dans la page jmx-console de jboss pour voir le nom JNDI je le trouve dans Global JNDI Namespace comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    +- RemoteGestionDeStockBean (proxy: $Proxy84 implements interface ejb11.GestionDeStock,interface org.jboss.ejb3.JBossProxy,interface javax.ejb.EJBObject)
    remarquez il y a $proxy84 au lieu $proxy91.Bizarre non?

Discussions similaires

  1. [EJB3] [JBoss] Injection de dépendance circulaire ?
    Par Claythest dans le forum Java EE
    Réponses: 6
    Dernier message: 04/08/2009, 08h11
  2. [Framework] Injection de dépendances ; comment se passer du XML ?
    Par ummon99 dans le forum Spring
    Réponses: 3
    Dernier message: 12/01/2008, 09h19
  3. [EJB3] Injection de dépendance et Stateful
    Par newbeewan dans le forum Java EE
    Réponses: 1
    Dernier message: 15/05/2007, 07h33
  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