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 :

EJB et l'entity manager


Sujet :

Java EE

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 4
    Points : 4
    Points
    4
    Par défaut EJB et l'entity manager
    Bonjour à tous,

    Ma préoccupation est que j'ai créé un EJB avec un accès aux donnée passant par la JPA.
    Lorsque j'essaie de faire des tests pour la récupération ou la persistence des données, l'entity manager n'arrive pas à s'initialiser je ne sais pas pourquoi. J'ai tout essayé mais rien. Si quelqu'un peux m'aider à ce sujet.
    L'organisation de mon EJB est telque :
    les packages :
    - dao : qui contient trois interfaces dont (IDao, IDaoLocal, IDaoRemote) et une classe (Dao) qui implemente les interfaces IDaoLocal, IDaoRemote et Serializable
    - entities : qui contient mon entity (FormeJuridique)
    - common : où j'ai placé pour des raisons de test la classe Test avec une méthode main qui fait appel à l'instance de la dao afin de faire une opération CRUD

    Je suis passé par injection de l'unité de persistence.

    Mais lorsque je fait une initialisation de l'entity manager avec une ressource local sans passer par injection j'arrive à lire sans pour autant écrire/updater ou deleter.

    Merci pour vos réponses.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Il te faut un conteneur ejb3 pour faire des tests sur un ejb. Sinon ca deviens un objet tout ce qu'il y a de plus banal sans aucune injection. C'est un peu long et chiant à configurer en début de projet.

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Il te faut un conteneur ejb3 pour faire des tests sur un ejb. Sinon ca deviens un objet tout ce qu'il y a de plus banal sans aucune injection. C'est un peu long et chiant à configurer en début de projet.
    L'EJB que j'ai créé est bien un EJB3, j'ai fait des injections de l'unité de persistence.
    Pouvez-vous être plus clair ?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    L'ejb c'est juste un objet, il y a un conteneur autour (jboss, glassfish, etc) qui se charge de lire les annotations (injections, entitymanager, jpa) et de les appliquer. Dans un "main", tu n'a pas de de conteneur qui tourne et donc rien n'est injecté. IPour faire des unit tests de tes classes ejb3 (je suppose que c'est ce que tu cherche à faire), tu peux utiliser des outils comme jmockit, mockito, etc afin de simuler le conteneur et de faire manuellement les injections. Si tu veux faire des tests d'intégration, il te faut ajouter et initialiser un conteneur ejb3, comme tomeeembedded, arquillian ou openEJB.
    example avec openEJB d'un unit test simple

    http://www.adam-bien.com/roller/abie..._unit_test_ejb

    Avec un entity manager, ça implique aussi donc jpa, donc il te faut une implémentation jpa, comme hibernate par exemple.

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Je suppose que tu pense consommé les services de ton EJB dans un projet Web, la manière la plus simple est de créer un projet web avec une petite page xhtml par exemple dedans et de créer un petit bean manager dans lequel tu injecte ton EJB avec l'annotation @EJB puis de faire appel à n'importe quel services dans la méthode annoté par @PostConstruct pour son exécution lors du chargement.
    Le déploiement de ton projet doit être sous un serveur d'application qui contiens un conteneur EJB.
    ça reste dans le cadre d'un simple test qui ressemble à une réelle exécution dans un prochain temps s'il s'agit d'un projet WEB.

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/03/2012, 17h04
  2. [EJB] Entity Manager et ejb 2.1
    Par zineb_cerisette dans le forum Java EE
    Réponses: 1
    Dernier message: 12/05/2011, 21h14
  3. Réponses: 4
    Dernier message: 01/12/2007, 22h22
  4. Effectuer du JDBC via l'Entity Manager
    Par Claythest dans le forum JPA
    Réponses: 1
    Dernier message: 06/04/2007, 10h22
  5. [EJB3 Entity] Création d'un entity Manager pour transaction
    Par bizet dans le forum Java EE
    Réponses: 4
    Dernier message: 23/02/2007, 08h58

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