IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

Accès Interface locale depuis une classe métier. [EJB2]


Sujet :

Java EE

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Accès Interface locale depuis une classe métier.
    Bonjour,

    L'application sur laquelle je travaille vient d'avoir csa JDK changée (1.4 maintenant).
    Ayant des problemes de performance, l'utilisation des interfaces locales pour les EJB m'intéressent fortement.
    L'application est stockée sur un unique serveur d'application (WebSphere 6), et est constituée telle que ci dessous :

    - Un projet Web : jsp / action : couche de présentation uniquement

    - Un projet EJB dans lequel il y a :
    + Des Beans Session Stateless qui ne servent que de Facade permettant de gérer la sécurité
    + Des EJB BMP à l'image de la base de données
    + Des classes "on ne peut plus classiques" (les manager) dans lesquelles sont implémentées notre logique métier. Ce sont ces classes qui manipulent les EJB BMP et les mettent à jour.

    J'aimerai accéder à partir de ces managers aux EJB BMP via les interfaces locales.
    Mais, ces managers n'étant pas des EJB, je ne peux pas lier ces Managers et les EJBs cibles dans le ejb-jar.xml (pas d'environnement de bean).
    De même, le manager n'étant pas dans le projet web, modifié le web.xml pour ajouter une référence "globale" aux EJB à accéder en local n'a pas d'effet.

    J'ai essayé de récupérer une référence à mes EJBLocalHome via un lookup sur le nom JNDI complet de l'EJB ce qui ne marche pas :
    anEJBLocalHome = (EJBLocalHome) ctx.lookup("ejb/com/blabla/MonEJBHome");


    Y a-t-il un moyen de mettre à disposition un EJB via ces interfaces locales pour toute classe du meme projet EJB ?
    Est ce quelqu'un a déjà essayé et réussi à accéder à un EJB en local depuis une classe "classique" du meme projet EJB ?

    Merci d'avance pour vos réponses.

    Olivier

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    Si je comprend bien, tes beans Session Façade font appel à tes classes Manager qui elles accèdent ensuite aux Entity BMP ? Si tel est le cas, il faudrait définir les références locales aux beans Entity dans les beans Session puis passer ces références aux classes Manager qui auront accès au contexte JNDI des Session Beans appelants et donc aussi aux références EJB des beans Entity.
    En fait, plus simplement, à partir du moment où le Session Bean déclare une référence <ejb-local-ref> sur un autre bean, disons "ejb/monEntiteBMP", il est possible par la suite de faire une recherche JNDI dans une classe "classique" POJO qui est appelée par le bean session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Context ictx = new InitialContext();
    MonEntiteHome = (MonEntiteHome)ictx.lookup("java:comp/env/ejb/monEntiteBMP");
    Voilà, j'espère que ça puisse t'aider.
    SCJP 5 / SCBCD 1.3 Certified

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    C'est exactement ca, merci beaucoup !
    Je cherchais une solution plus générale (un peu comme pour le projet Web) qui m'aurait bien arrangé, mais en tout cas, avec ces deux méthodes, cela fonctionne, ce sera juste plus fastidieux à modifier.

    Merci encore

    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [EJB3] Accès Interface Locale d'une EJB3 via WebApp
    Par yashiro dans le forum Java EE
    Réponses: 1
    Dernier message: 26/11/2009, 19h08
  2. Accès au formulaire ouvert depuis une classe
    Par alband85 dans le forum C#
    Réponses: 32
    Dernier message: 27/06/2007, 16h38
  3. [Débutant] - Accès à GTK depuis une classe
    Par Leobaillard dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 03/06/2007, 13h09
  4. Accès au fichier ressources depuis une classe action
    Par root76 dans le forum Struts 1
    Réponses: 2
    Dernier message: 21/11/2006, 07h36
  5. acces a uneressource bitmap depuis une classe
    Par firejocker dans le forum MFC
    Réponses: 9
    Dernier message: 03/02/2006, 21h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo