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 :

La création d'un EJB avec des paramètres côté serveur et son invocation côté client.


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut La création d'un EJB avec des paramètres côté serveur et son invocation côté client.
    Bonjour,

    J'ai égaré la manière de créer un EJB 3 Stateless ou Stateful qui prend des paramètres au moment de sa création.

    Pouvez-vous me rappeler comment on l'implémente côté serveur puis on l'invoque côté client? Je me rappelle de ce que je faisais en EJB 2... mais en EJB 3 pour faire l'équivalent, j'ai un trou de mémoire!

    Avez-vous un exemple en stock?


    Je vous remercie d'avance,

    Grunt.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 70
    Par défaut
    Ca veut dire quoi "EJB qui prend des paramètres au moment de sa création" ?
    Voulez vous dire "un Session Bean qui récupère les paramétrés d'initialisation " ?
    Paramètres d'initialisation == paramètres passés dans le fichier ejb_jar;

  3. #3
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut
    Un ejb qui en EJB 2 aurait été invoqué comme cela:

    MonService = home.create("Service spécial");


    Comment obtient-on l'équivalent en EJB 3?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 70
    Par défaut
    Je ne sais pas exactement ce que vous voulez faire mais sachez que la méthode create n'existe plus en EJB3.
    Il faudra jongler entre la constructeur par défaut (obligatoire) et la méthode annotée @PostConstruct (appelée juste après l'instantiation du bean) pour arriver à vos fins.

  5. #5
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut
    En fait, c'est exactement un exemple de ce jonglage que je cherche.

    Implémentation côté serveur,
    et invocation côté client.

  6. #6
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut
    Bonjour,

    Je m'excuse de relancer cette question, mais je vais avoir besoin de passer un paramètre à la construction de mes stateless bean très prochainement.

    Concrètement, mon problème est de m'assurer qu'un service sera rendu dans la locale qu'a choisie un appelant (qui n'est pas nécessairement un site web).

    Trois solutions:
    1) L'atroce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @Stateless public class MonServiceBean
    {
       public void service1(Locale locale, ...);
       public void service2(Locale locale, ...);
       public void service3(Locale locale, ...);
    }
    2) La solution de contournement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @Stateless public class MonServiceBean
    {
    private Locale m_locale;
     
       public void setLocale(Locale locale) {m_locale = locale};
       public void service1(...);
       public void service2(...);
       public void service3(...);
    }
    Mais alors tous les appelants se paient le triplet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MonService service = ctx.lookup("...mon service...");
    service.setLocale(locale);
    service.service1();
    3) La solution que j'aimerais voir, sans la trouver précisément
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @Stateless public class MonServiceBean
    {
    private Locale m_locale;
     
       @PostConstruct create(Locale locale) {m_locale = locale};
       public void service1(...);
       public void service2(...);
       public void service3(...);
    }

    Côté client, je ne sais pas précisément comment l'invoquer, de surcroît ...

    Cela me gêne, parce qu'en EJB 2, j'aurais créé et utilisé le constructeur d'un EJB avec des paramètres sans difficultés. Alors, pourquoi est-ce que je ne parviens pas à trouver son équivalent en EJB 3?


    Grunt.

Discussions similaires

  1. création d'une dll avec des pointeurs en paramètre
    Par patoche.05 dans le forum Langage
    Réponses: 7
    Dernier message: 03/07/2010, 02h27
  2. ireport et création de rapport avec des paramètres
    Par Talel2010 dans le forum iReport
    Réponses: 9
    Dernier message: 05/04/2010, 11h51
  3. Réponses: 2
    Dernier message: 27/07/2004, 14h38
  4. Erreur sur une fonction avec des paramètres
    Par Elois dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 05/05/2004, 21h00
  5. créer un noeuds avec des paramétres
    Par Toxine77 dans le forum XMLRAD
    Réponses: 5
    Dernier message: 21/01/2003, 16h11

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