Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2459 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  EJB 3 JNDI lookup @EJB Local Distant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

EJB 3 JNDI lookup @EJB Local Distant

n°2215864
Mr p0mme
Posté le 12-01-2014 à 02:43:51  profilanswer
 

Après une petite journée de recherches effrénées sur le web, j'ai enfin réussis à faire fonctionner mes EJB3.

 

C'est loin d'être compliqué, sauf si l'on s'écarte un chouïa des tuto. ce qui est le cas dans 100% des cas si l'on a décidé, comme moi, de déployer ses EJB3 dans un EAR.

 

Les binding ne semblent fonctionner que si l'on dépose le jar EJB dans le même conteneur que l'application, voici un lien à potasser, pour ceux qui ont des problème de binding.

 

https://glassfish.java.net/javaee5/ [...] le_global_

 

L'info qui m'a sauvé :D ajouter le nom de l'EAR au lookup -> "java:global/nom_de_l_EAR/nom_du_jar_EJB/nom_beans_ejb"... sauf que cela ne marche pas, pourquoi ? ; parce que les beans sont en dehors de l’application, et seul l'instance de l'EJB répond au lookup java:global/nom_de_l_EAR/nom_du_jar_EJB"

 

le lookup suivant résous ce problème;

 

"java:global/nom_de_l_EAR/nom_du_jar_EJB/nom_beans_ejb!chemin.complet.de.la.Classe"

 

ou comme indiqué dans la FAQ ;

 

java:global[/<app-name>]/<module-name>/<bean-name>!<fully-qualified-interface-name>

 

le detail intéressant est que les deux interfaces, Local et Remote répondent, ce qui me laisse penser qu'il n'y a pas deux état possible pour les EJB qui seraient LOCAL ou DISANT mais trois;

 

* Local dans le même container ; @EJB fonctionne sans probleme de lookup, avec l'interface Local et Remote
* Local dans un container different, par exemple dans un EAR ; le lookup doit comporter le nom de l'EAR et se terminer par le nom de la classe avec son chemin complet, et fonctionne avec l'interface Local et Remote
* Distant, que je n'ai pas testé mais j'imagine que seule l'interface Remote fonctionne en mettant en oeuvre des process de sérialisation.

 


pour gagner du temps il est possible de se placer en mode debug sur le code avant le binding et de tester son chemin comme une expression du genre ; ctx.lookup("java:global/nom_EAR/nom_EJB!chemin.complet.de.la.Classe" ) ou d'autres test.

 

Il y a aussi d'autres informations dans cette FAQ très intéressante, qui est peut être à lire de bout en bout.

 

Bon codage :)


Message édité par Mr p0mme le 12-01-2014 à 02:46:28
mood
Publicité
Posté le 12-01-2014 à 02:43:51  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  EJB 3 JNDI lookup @EJB Local Distant

 

Sujets relatifs
Afficher la variable local d'une fonction dans une classe filleafficher vraie url pour un mirroir de site stocké en local ?
[SQL] Répliquer/Synchroniser BDD sur serveur distantgettext marche bien en local , pas en prod ;-(
Envoyer des alertes aux ordinateurs d'un réseau local en vbaReader Adobe PDF en local sur page HTML
Créer un mini serveur localProblème de mise en ligne d un site local
Installer un projet sous symfony 1.4.9 en LocalExécution en local d'un script cgi
Plus de sujets relatifs à : EJB 3 JNDI lookup @EJB Local Distant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR