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

Weblogic Java Discussion :

[EJB3] Injection JNDI


Sujet :

Weblogic Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de pmartin8
    Inscrit en
    Novembre 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 306
    Par défaut [EJB3] Injection JNDI
    Bonjour

    Je tente d'aller cherche une session bean dans mon JNDI et jai toujours une erreur javax.naming.NameNotFoundException.

    J'utilise EJB 3.0 sans descripteur ejb-jar.xml.

    mon interface locale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    package ca.rddc.kmapper.ejb3.session.knowledge.extracting;
     
    import javax.ejb.Local;
     
     
    @Local
    public interface ExtractionServiceLocal {
     
    	public void allo();
    }
    mon bean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    package ca.rddc.kmapper.ejb3.session.knowledge.extracting;
     
    import javax.ejb.Stateless;
     
    @Stateless
    public class ExtractionService implements ExtractionServiceLocal {
     
    	public void allo() {
    		int i = 0;
    		i++;
    		System.out.println("HELLO WORLD");
    	}
    }


    Et mon lookup:
    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
    Context ctx = null;
    			Hashtable ht = new Hashtable();
    			ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
    			ht.put(Context.PROVIDER_URL, "t3://localhost:7001");
     
    			try {    
    				ctx = new InitialContext(ht);    
    				ExtractionServiceLocal bean = (ExtractionServiceLocal)ctx.lookup(ExtractionServiceLocal.class.getName());
    				// Use the context in your program  }
    			}
    			catch (NamingException e) {
    				e.printStackTrace();
    			}
    			finally {    
    				try {ctx.close();} 
    				catch (Exception e) {      // a failure occurred    }  }
     
    				}
    			}


    Je ne suis pas certain que mon EJB est bien injecté dans le JNDI... Je ne le vois pas dans mon JNDI tree de mon serveur ... mais je ne suis pas certain a 100% que je regarde au bon endroit.

    Est-ce que quelqu'un peux m'aider?

    Merci

  2. #2
    Membre expérimenté

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Par défaut
    il me semble avoir lu que Weblogic travaille un peu comme il le veut avec le JNDI
    Il concatène le package derrière le nom JDNI avec un #

    Il faut déclarer le nom que tu veux dans ton EJB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Stateless(name = "ExtractionService", mappedName = "ExtractionService")
    public class ExtractionService implements ExtractionServiceLocal {
    ensuite il faut faire le lookup sur le nom JNDI :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExtractionService#ca.rddc.kmapper.ejb3.session.knowledge.extracting
    ou quelque chose du genre.

    Tu devrais trouver plus d'infos sur Google...

  3. #3
    Membre éclairé Avatar de pmartin8
    Inscrit en
    Novembre 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 306
    Par défaut
    En fait j'ai compris que dans Weblogic, les EJB local ne sont pas placés dans le JNDI.C'est ce que je remarque en consultant le JNDI tree.

    Il faut aller chercher le EJB avec l'annotation @EJB au lieu de fouiller dans le JNDI ...

    bizarre car je n'avais pas ce comportement dans JBOSS!!!

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

Discussions similaires

  1. EJB3.0 - JNDI - InitialContext
    Par nfoata dans le forum Wildfly/JBoss
    Réponses: 8
    Dernier message: 14/10/2009, 09h06
  2. [JNDI] [EJB3] - Références JNDI dans un session bean
    Par motorenshi dans le forum Java EE
    Réponses: 2
    Dernier message: 01/09/2009, 21h47
  3. Réponses: 2
    Dernier message: 15/01/2009, 20h50
  4. [EJB3] Nommage JNDI
    Par cocoyot dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 09/04/2008, 09h02
  5. problème d'injection (?) d'un session bean EJB3 dans une servlet
    Par toomsounet dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 11/03/2007, 01h26

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