Bonjour,

J'essaye de jouer avec des ejb ( un programme de type HelloWorld ) mais je suis confronté à un problème lors de l'appel du InitialContext.lookup ("JNDI name?!"): cet appel lève une exception de type javax.naming.NameNotFoundException. A première vue je dirai que j'utilise un mauvais JNDI name: si je ne dis pas de bêtise, il faut utiliser le nom indiqué dans le descripteur de déploiement de cet EJB

Voici le code du client appelant 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
 
 
public class HelloWorldClient {
 
	public static void main(String args[]) { 
 
		Context initialContext = null;
		try {
			Properties prop = new Properties();			
			prop.put(Context.PROVIDER_URL, "rmi://localhost:1099");
							prop.put(Context.INITIAL_CONTEXT_FACTORY, "org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory");
			initialContext = new InitialContext(prop);
 
		} catch (Exception e) {
			System.err.println("Impossible d'accéder au contexte JNDI : " + e);
			System.exit(2);
		}
 
		HelloWorldHome home = null;
		try {
			home = (HelloWorldHome)PortableRemoteObject.narrow(initialContext.lookup
					("HelloWord"), HelloWorldHome.class);
		} catch (Exception e) {
			System.err.println( "Impossible de trouver HelloWorldHome : " + e);
			System.exit(2);
		}
 
		HelloWorld myHelloWorld = null;
		try {
			myHelloWorld = home.create();
			System.out.println(myHelloWorld.sayHelloWorld());
		} catch (Exception e) {
			System.err.println("Impossible de créer le bean : " + e);
			System.exit(2);
		}
 
	}
}
et voici le descripteur de déploiement de mon ejb

jonas-ejb-jar.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
  <!-- Session Beans -->
  <jonas-session>
    <ejb-name>HelloWord</ejb-name>  
    <jndi-name>HelloWord</jndi-name>  
  </jonas-session>

ejb-jar.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
     <!-- Session Beans -->
      <session >
         <description><![CDATA[]]></description>
         <ejb-name>HelloWord</ejb-name>
         <home>server.interfaces.HelloWordHome</home>
         <remote>server.interfaces.HelloWord</remote>
         <ejb-class>server.ejb.HelloWordSession</ejb-class>
         <session-type>Stateless</session-type>
         <transaction-type>Container</transaction-type>
      </session>
Je pense que je suis en train d'utiliser un mauvaise valeur pour le JNDI name pour l'obtention de l'interface Home

Quelqu'un aurait une idée svp?

merci