Obtenir un Stateful bean par client
	
	
		Bonjour,
Je dois réaliser un panier/caddie qui sera utilisé par des clients pour stocker leurs articles et valider leurs achats, sur le même modèle que le tutorial J2EE5 Sun: http://java.sun.com/javaee/5/docs/tu.../Session2.html
Mon problème est que tous les clients du site partagent actuellement le même caddie... Pour fonctionner, ma servlet du type "AjouterArticle" récupère ce caddie en utilisant l'annotation @EJB RemoteCart cart.
Comment faire pour pouvoir créer autant de caddies que des clients et récupérer le bon caddie lors de l'ajout de l'article par un client lambda ?
Dans les sources du tutorial Sun, seul un client est utilisé, ce qui évite le prolème... Je n'arrive pas à trouver un exemple similaire à mon problème!
	 
	
	
	
		Panier virtuelle - EJB 3 Stateful
	
	
		Je ne vois pas pourquoi vous voulez que vos clients partagent le même panier, normalement chaque client doit disposer de son propre panier virtuelle (instance d'un EJB 3 Stateful pour gérer l'état de chaque panier - client).
Les instances de votre EJB sont stockés que vous pouvez manipuler en accèdant au SessionContext de vos EJB.
4 méthodes existent pour récupérer le contexte des EJB :
1- Utilisation de l'injection de la ressource (méthode la plus simple)
	Code:
	
1 2
   | @Resource
private SessionContext sctx;  | 
 2- Utilisation d'un setter pour l'injection de la ressource
private SessionContext sctx;
	Code:
	
1 2 3 4
   | @Resource
private void setSessionContext(SessionContext sctx) {
  this.sctx = sctx;
} | 
 3- Recherche de la ressource injecté en utilisant son nom : 
	Code:
	
1 2 3 4 5 6 7 8 9 10 11
   | @Resource(name="sessionContext")
private SessionContext sctx;
 
try {
      InitialContext ic = new InitialContext();
      SessionContext sctxLookup =
             (SessionContext) ic.lookup("java:comp/env/sessionContext");
      System.out.println("look up injected sctx: " + sctxLookup);
} catch (NamingException ex) {
      throw new IllegalStateException(ex);
} | 
 4- Recherche par le nom standardd java:comp/EJBContext
	Code:
	
1 2 3 4 5 6 7 8
   | try {
    InitialContext ic = new InitialContext();
    SessionContext sctxLookup =
       (SessionContext) ic.lookup("java:comp/EJBContext");
    System.out.println("look up EJBContext by standard name: " + sctxLookup);
} catch (NamingException ex) {
    throw new IllegalStateException(ex);
} |