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

Seam Java Discussion :

@In entityManager vs @PersitenceContext (éviter la dépendance avec Seam)


Sujet :

Seam Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 13
    Par défaut @In entityManager vs @PersitenceContext (éviter la dépendance avec Seam)
    bonjour,

    ça ne fait que quelques jours que je suis sur Seam et j'aimerais avoir quelques éclaircissement.

    tout d'abord, voici comment se présente en gros le projet :
    - un paquet d'Entity, et les Ejb stateless correspondant dans un projet non-seam
    - un projet seam pour la vue (avec icefaces 1.7)

    mon soucis est de bien séparé le projet qui contient les ejb stateless du projet seam. je préfére éviter les dépendances à ce niveau.
    donc je n'ai pas mis de @Name sur les ejbs, et je les ai déclaré dans un components.xml.

    ça, ça fonctionne très bien.

    maintenant, j'ai un autre soucis : je retombe sur les problèmes de LazyInitializationException. et là 2 solutions, soit j'utilise le PersistenceContext de type Extended, soit j'utilise la gestion des EntityManager de seam (via persistence:managed-persistence-context), le fameux SMPC.

    mon soucis c'est que ça implique d'utiliser le @In pour injecter l'entityManager dans mes ejb. et donc retomber dans la dépendence avec Seam.

    si quelqu'un a une solution à ce pb ou une bonne pratique à adopté dans ce cas là, je suis preneur

    si mon problème n'est pas clair, n'hésitez pas à demander des infos.

    Merci

    Jo

    PS : Seam 2.0.2.SP1 sur JBoss 4.2.2 et icefaces 1.7.1

  2. #2
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 222
    Par défaut
    Salut,

    pourquoi sépares tu le projet qui contient les EJB à ton projet seam ?

    Car le but de seam est de simplifier l'utilisation des EJB, et donc de simplifier le développement de l'application.


    Et donc malheureusement, je ne vois pas comment résoudre ton problème

    Désolé !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 13
    Par défaut
    parce que je veux pouvoir partager ces mêmes ejbs (mes dao) avec d'autres applications qui ne sont pas forcement seam et du coup, la dépendence m'embête.

  4. #4
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 222
    Par défaut
    Ah d'accord, je comprends !

    Tu voudrais donc avoir accés à tes EJB depuis ton application seam, voila ce que je peux te proposer, je ne sais pas si ça pourra t'aider, mais au début avant que j'utilise le framework seam, j'avais comme toi une projet pour les ejb et un projet pour la vue, et lorsque je voulais avoir accés à mes ejb, je faisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Context context = new InitialContext();
    GestionDeDocument gdd = (GestionDeDocument) context.lookup("MonProjet/GestionDeDocumentBean/local");
     
    gdd.maMéthode();
    Où GestionDeDocument est mon interface pour les EJB, GestionDeDocumentBean est la classe implémentant cette interface, et MonProjet le nom du projet des EJB

    Et ensuite, j'avais accés aux méthodes défini dans la classe GestionDeDocument

    En espèrant que ça puisse t'aider

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 13
    Par défaut
    en fait, accéder à mes ejbs ne me pose pas de pb en soit, je les ai déclaré dans un components.xml comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <component name="maDAO" class="com.toto.maDAOImpl" scope="stateless" auto-create="true" />
    du coup, je bénificie des fonctionnalités de seam sans avoir la dépendance et je peux les injecter comme je veux en utilisant le @In.

    en fait, le problème premier que j'aimerais résoudre, c'est les soucis causés par les OneToMany qu'il y a un peu partout dans mes entités.
    Un problème bien connu en jsf réglé par des listener ou des filter dans les autres technos.
    Seam gére lui même les entity manager et donc masque la difficulté.
    mon problème c'est que pour utiliser la fonctionnalité de seam, je suis obligé d'utiliser dans mes ejbs (dao)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @In EntityManager entityManager;
    en lieu et place de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @PersistenceContext EntityManager entityManager;
    et par là même créer une dépendence avec seam et l'impossibilité d'utiliser ces ejb dans un autre projet.

    après je ne sais pas si il y a une solution simple (on peut toujours réver ) à mon problème mais n'ayant pas une connaissance profonde du framework, je préfére poser la question

  6. #6
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 222
    Par défaut
    Bon et bien malheureusement, je ne pourrais pas te proposer de solutions, car moi même, il y a très peu de temps que je travaille avec le framework seam.

    En espérant que tu puisse trouver une solution.

    Bon courage !

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/06/2009, 10h03
  2. Éviter le max_execution_time avec un timeout?
    Par FrankOVD dans le forum Langage
    Réponses: 3
    Dernier message: 05/02/2009, 17h22
  3. Réponses: 3
    Dernier message: 07/07/2008, 11h46
  4. Dépendance avec les plugins
    Par epotvin dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 28/02/2008, 21h52
  5. Make: génération des dépendances avec gcc
    Par Syrmonsieur dans le forum Systèmes de compilation
    Réponses: 1
    Dernier message: 08/06/2006, 15h22

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