-
[JSP] Accès à un EJB
Je débute en JSP
Mon problème est le suivant.
J'accède à un EJB qui gère basiquement un caddie avec une JSP, et j'aimerais appeler une autre page JSP, qui doit accéder au même EJB.
J'ai tenté d'utiliser un
<jsp:useBean id="cart" class="ejb.Cart" scope="session"/>
pour garder mon instance d'une page sur l'autre.
Mais sur la première page accédée, j'ai une erreur 500
"HTTP ERROR: 500 interface ejb.Cart : java.lang.InstantiationException: ejb.Cart "
sans le useBean, ma page fonctionne, mais forcément, je n'ai plus de lien entre mes pages, et le caddie est vidé à chaque page.
Merci d'avance pour votre aide :)
-
Si je ne me trompe pas useBean s'utilise uniquement avec les Java Beans et non les Entreprise Java Beans , Nuance!
Si tu veux utiliser un EJB instancie le d'une manière classique (interfaces home et metier )dans le Java Bean que tu pourra appeler à partir la JSP;
Donc le schéma est suivant :
JSP-->Bean-->EJB
-
Ha, je ne savais pas pour les usebeans.
Je vais faire ce que tu proposes.
Merci ^_^
-
Salut,
Le principe est à partir du bean d'utiliser une classe du type Design Pattern façade pour accéder, récupérer et instancier l'EJB...
-
Ça fonctionne très bien maintenant :)
Merci à vous ^^
-
J'ai une question à propos du problème rencontré ici.
Une EJB Session de type Stateful est une EJB dont l'instance fournise par le serveur reste la meme tout au long de la session, elle est unique pour chaque client. (je peux me tromper)
On peut trouver la "factory" de cette EJB en la demandant au Serveur, puis lui demander de nous fournir le bean à proprement parlé (home.create()).
Peut on donc demander l'EJB directement à partir du jsp, avec les méthode habituelle de création d'instance de bean, sans passer par le fameux <jsp:usebean...? (puisque si le bean existe déjà sur le serveur, la méthode create() renvoit cette instance, si j'ai bien tout capté...)