Bonjour,
je developpe une application de gestion Shopping cart,
mon Shopping Cart est un EJB stateful definit comme suit :
donc, vous remarquer que la méthode passer la commande détruit 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
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); } }
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 :
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 :
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
Merci d'avance de votre aideINFO: 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
Partager