index

ejb stateless

Ecrire un ejb

Cela consiste en l'ecriture d'une classe et de deux interfaces.
Pour compiler, il est necessaire d'avoir javaee.jar dans le path.

Interface Remote

Interface IHelloWorld

Interface Local

Interface IHelloWorldLocal

Le bean

Le deploiement simple

Faire un jar classique.
Inutile d'ajouter aucun fichier xml dans le jar
Sous glassfish:applications/module EJB ajouter ou redeployer suivant les cas ... Simple n'est ce pas ?

Le deploiement dans un ear

Inclure le jar precedent à la racine du ear.
Inclure le descripteur de deploiement "application.xml" suivant dans un répertoire metadata à la racine du ear.
Voici un exemple d'un "application.xml" .

Vérifier que les ejb sont mappés

Sous glassfish, dans la console d'administration, il y a un utilitaire pour explorer le context. (Application Server >JNDI browsing )

Comment acceder à un EJB local depuis un POJO

voir : https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html#POJOLocalEJB
Rappels : Les interfaces locales des EJB ne sont accessibles que dans la même application (Dans le meme .ear par exemple, mais entre un .jar et un .war ...).
Principe: L'injection n'est pas supporté pour les POJO, aussi le POJO doit rechercher (look up) la reference de l'EJB local dans l'espace de nommage (namespace) "java:comp/env" du composant qui est en train de s'exécuter. Cependant avant, il faut mettre une reference de l'interface locale dans l'espace de nommage .
- Step 1.
Définir les dépendance de l'EJB local à l'interieur de l'espace nommage.
Supposons que le POJO veut acceder un interface locale d'un EJB 3.0 FooLocal:

Si le pojo est appelé depuis une application web, l'espace de nommage java:comp/env est partagé par l'ensemble du .war. Aussi la dépendance de l'EJB local peut peut etre defini en utilisant une annotation @EJB devant une classe managée .
Exemple:

De même, si le Pojo est appelé lui-même depuis un EJB, les dependances de l'EJB local doivent etre definies à l'interieur du jar. Au contraire des .war, les environnement des composants (java:comp/env) est limité au niveau du composant.



- Step 2.
Dans le code POJO, il faut rechercher l'interface locale de l'EJB dans "java:comp/env"

Ressources