Bonjour,
j'essaie de deployer un EJB session sur jBoss mais j'ai l'erreur suivante :
javax.naming.NoInitialContextException
voila mes fichiers xml (je sais s'il faut qlq chose de plus)
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
15
16
17
18
19
20
21
22
23 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"> <ejb-jar> <description>Descripteur de déploiement de HelloWorldEJB</description> <display-name>HelloWorldEJB</display-name> <enterprise-beans> <session> <description>HelloWorldEJB</description> <display-name>HelloWorldEJB</display-name> <ejb-name>HelloWorldEJB</ejb-name> <home>com.mounir.ejb.HelloWorldEJBHome</home> <remote>com.mounir.ejb.HelloWorldEJB</remote> <ejb-class>com.mounir.ejb.HelloWorldEJBBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> </ejb-jar>
jboss.xml
-----------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" "jboss_4_0.dtd" > <jboss> <enterprise-beans> <session> <ejb-name>HelloWorldEJB</ejb-name> <jndi-name>HelloWorldEJB</jndi-name> </session> </enterprise-beans> <resource-managers> </resource-managers> </jboss>
Programem client de l'EJB (qui a l'air de se deployer ss erreur)
voila la joli erreur :
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 public class HelloWorldEJBClient { public static void main(String[] args) { try{ //1-Obtention d'un contexte //JNDI fournit une API standard pour acceder aux rep Context jndiContextInitial = new InitialContext(); //2-Obtention d'une reference à l'entree JNDI HelloWorldEJB //On accede à un repertoire interne au serveur EJB Object refEJB = jndiContextInitial.lookup("HelloWorldEJB"); //3-Obtention d'une reference à l'interface home du Bean (NARROW : cast) HelloWorldEJBHome refHelloWorldEJB = (HelloWorldEJBHome) PortableRemoteObject.narrow(refEJB,HelloWorldEJBHome.class); //4-Creation cote client d'un objet EJB à partir de son interface HelloWorldEJB helloWorldEJB = refHelloWorldEJB.create(); //5-Utilisation for (int i = 0; i < args.length; i++ ){ String returnedString = helloWorldEJB.getEchoString(args[i]); System.out.println("Entree :"+args[i]+" Sortie :"+returnedString); } }catch(Exception e){ e.printStackTrace(); } } }
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
.....
Si qlq 1 peut m'aider, ça fais plus 2h que je cherche sur le net (pas trop doué :-S)
merci
Partager