Bonjour,

J'ai fais un Stateless EJB très simple, qui permet d'additionner ou de soustraire deux entiers, mais je bloque au niveau du client qui dois utiliser cet EJB (je l'ai pris à partir d'un exemple que j'ai trouvé) mais je ne comprends pas où est ce qu'il faut préciser l'adresse du serveur pour le client. A aucun moment dans le code source du client on ne vois d'adresse du serveur ! Comment ça se fait ?

J'utilise NetBeans 6.9.1 avec GlassFish Server 3.

La classe de 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
package cours;
 
import javax.ejb.Stateless;
 
@Stateless
public class CalcBean implements CalcBeanRemote {
 
    public int add(int a, int b) {
        System.out.println("dans add");
        return a + b;
    }
 
    public int sub(int a, int b) {
        System.out.println("dans sub");
        return a - b;
    }
}
L'interface de l'EJB:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
package cours;
 
import javax.ejb.Remote;
 
@Remote
public interface CalcBeanRemote {
     public int add(int a, int b);
      public int sub(int a, int b);
}
Et un 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
17
package test;
 
import cours.CalcBeanRemote;
import javax.naming.InitialContext;
import javax.naming.NamingException;
 
public class Main {
 
    public static void main(String[] args) throws NamingException {
 
        InitialContext ic = new InitialContext();
        CalcBeanRemote calcul = (CalcBeanRemote) ic.lookup("cours.CalcBeanRemote");
 
        System.out.println(calcul.add(5, 4));
        System.out.println(calcul.sub(5, 4));
    }
}
Et pourtant ça affiche bien:
9
1