Bonjour à Tous,

Je débute sur les EJB3.. et perdu sur un point :

Stateful/Stateless; Dans mon exécution les 2 comportements sont contraires à ce qui est attendu. J'ai un Bean comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
@Remote
public interface Cart {
 
	public void addItem(float item);
	public ArrayList<Float> getItems();
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public class CartBean implements Cart{
 
	private ArrayList<Float> items = new ArrayList<Float>();
 
 
	@Override
	public void addItem(float item) {
		items.add(item);
	}
}
Puis un Client Java 'classique' :qui appelle la méthode add puis affiche le contenu de la liste et le HashCode de l'objet Cart(interface):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
        Cart cart = (Cart) ic.lookup("CartBean/remote");
        // 1: add()    
      	cart.addItem(2.2f);
 
	// affichage hashcode		
	System.out.println("HASHCODE : " + cart.hashCode()+"\r\t");
 
       // affichage contenu liste
       ArrayList<Float> list = cart.getItems();
       for (float item : list)
           System.out.println(">> " + item + "<br>");
Résultat suivant le cas :

STATEFUL:
Le Hashcode(de l'objet anonyme Cart) change (donc pas la meme instance ?)
La liste est réinitialisée

STATELESS :
Meme HashCode
la méthode Add viens ajouter dans la suite de la liste (mais pas toujours).

> Bref n'est-ce pas l'inverse qui est attendu.. ou ai-je mal compris un point.