Bonjour,

Je débute en programmation JEE et j'ai un serveur Jboss 4.2 configuré dans ma version d'Eclipse Indigo.

Le problème est que je n'arrive pas à tester un EJB3.

Je crée un projet EJB, une interface, puis une classe implémentant cette interface.

Ensuite pour tester mon Bean, je crée un projet Java simple, qui importe le projet EJB et les bibliothèque jboss-allclient.jar et jboss-jnp.jar.
Dans ce projet client, je crée un fichier jndi.properties, mais l'exécution me génère une exception javax.naming.NoInitialContextException.

Quelqu'un saurait-il m'expliquer comment résoudre ce problème ?

Mon code:
Projet EJB:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
package com.et;
import javax.ejb.Remote;
 
@Remote
public interface PremierEJB3 {
    public String ditBonjour(String aQui);
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
package com.et;
import javax.ejb.Stateless;
 
import org.jboss.annotation.ejb.RemoteBinding;
 
@Stateless
@RemoteBinding
public class PremierEJB3Bean implements PremierEJB3 {    
    public String ditBonjour(String aQui) {
        return "Bonjour " + aQui + " !!!";        
    }
}
Projet Client

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
package com.et;
import javax.naming.*;
public class ClientPremierEJB3 {
 
    public static void main(String[] args) {
        try {
             Context context = new InitialContext();
             PremierEJB3 beanRemote = (PremierEJB3)
             context.lookup("PremierEJB3Bean/remote");
             System.out.println(beanRemote.ditBonjour("ClientPremierEJB3"));
          } catch (NamingException e) {
             e.printStackTrace();
             System.out.println(e.getMessage());
          }
    }
}
Fichier JNDI
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://localhost:1099
Merci d'avance pour votre aide.