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:
et voici le descripteur de déploiement de mon 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); } } }
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
Je pense que je suis en train d'utiliser un mauvaise valeur pour le JNDI name pour l'obtention de l'interface Home
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>
Quelqu'un aurait une idée svp?
merci![]()
Partager