Bonjour,
je developpe une application de gestion Shopping cart,
mon Shopping Cart est un EJB stateful definit comme suit :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.esi.business;
 
import java.util.LinkedList;
import java.util.List;
 
import javax.ejb.Remove;
import javax.ejb.Stateful;
 
import com.esi.model.Article;
 
/**
 * Session Bean implementation class Panier
 */
@Stateful
public class Panier implements PanierLocal {
 
	private List<Article> contenu;
    /**
     * Default constructor. 
     */
    public Panier() {
        // TODO Auto-generated constructor stub
    	contenu = new LinkedList<Article>();
 
    }
 
	@Override
	public void ajouterAuPanier(Article a) {
		// TODO Auto-generated method stub
		contenu.add(a);
 
	}
 
	@Override
	public List<Article> contenuDuPanier() {
		return contenu;
	}
 
	@Remove
	@Override
	public void passerLaCommande() {
 
	}
 
	@Override
	public void retirerDuPanier(Article a) {
		contenu.remove(a);
	}
 
 
}
donc, vous remarquer que la méthode passer la commande détruit l'EJB,

Le servlet que j'ai appelé controlleur, qui s'occupe de l'ajout des items dans le panier est definit brievement comme suit :
donc j'ai une servlet definit par le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public class Controller extends HttpServlet {
 
	@EJB
	private PanierLocal panier;
...
	private void doAjouterAuPanier(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		panier.addItem(i);\\ajouter un item au panier
 
	}
 
	private void doPasserCommande(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		panier.passerLaCommande(); \\valider la commande
mon probleme est quand j'appelle la méthode passerLaCommande, je détruit mon EJB statefull alors que je dois le réutiliser au cours de la prochaine commande et j'ai l'exception suivante :

INFO: EJB5018 : Une exception a été renvoyée lors d'un appel ejb sur [Panier].
INFO: javax.ejb.NoSuchObjectLocalException: The EJB does not exist. session-key: 90bf9400a81f-5dd5db88-0
Merci d'avance de votre aide