Réutilisation aprés avoir appelé @Remove ?
Bonjour,
je developpe une application de gestion Shopping cart,
mon Shopping Cart est un EJB stateful definit comme suit :
Code:
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:
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 :
Citation:
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