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 Transaction


Sujet :

Java EE

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut EJB et Transaction
    Bonjour,

    J'aimerai gérer toutes les transactions de mon application mais je ne comprend pas comment faire,

    Dans mon Bean, j'ai ajouter les annotations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @TransactionManagement( TransactionManagementType.BEAN )
    @TransactionAttribute( TransactionAttributeType.REQUIRED )
    Mais le serveur n'arrive pas a déployer :
    java.lang.IllegalArgumentException: Les attributs de transaction du niveau de méthode ne peuvent être spécifiés sur un bean avec le type de transaction [Bean]
    Je ne vois pas comment utiliser les transaction dans mon EJB SessionBeans Stateless. Si vous pouvez m'aider ce serai gentil. Un exemple serait le mieux

    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Poste ta classe, pour voir à quel niveau tu as mis les Annotations.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    C'est simple, le message d'erreur te dit tout.
    Soit tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @TransactionManagement( TransactionManagementType.CONTAINER )
    @TransactionAttribute( TransactionAttributeType.REQUIRED )
    soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @TransactionManagement( TransactionManagementType.BEAN )
    Car si tu choisis BEAN, c'est à toi de gérer les transactions à la main et donc le REQUIRED n'a pas de sens.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    Oui mais quand je ne met que la 1ere ligne, il me sort l'erreur :

    Description: Cannot use an EntityTransaction while using JTA.
    lorsque j'essaie d'ouvrir une transaction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @PersistenceContext( unitName = "stargateReferentielEJB")
    private EntityManager em;
    private EntityTransaction et;
     
    public ImportInstance() {
           et = em.getTransaction();
    }
    Qu'est ce que je ne fais pas comme il faut?

    Merci pour vos réponses

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Parce que si tu mets container, tu ne dois pas toucher aux transactions à l'intérieur de tes méthodes.
    C'est le container qui les gère. Tu peux juste customiser la gestion, par annotation avec le TransactionAttribute.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    Oui j'ai compris le systeme avec container ou bean et justement moi il me faut beann. Mais qd je mets bean il me sort l'ereur que j'ai mis au dessous. Comment puis je gérer mes transaction cad en faisant des commit ou rollback au moment voulu?
    Merci pour vos reponses.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Tu dois récupérer l'objet UserTransaction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    @Resource
    UserTransaction ut;
     
    public void taMethode()
    {
      ut.begin();
     
      ut.commit();
    }

Discussions similaires

  1. Transactions avec l'annotation dans les EJB
    Par silverfab34 dans le forum Java EE
    Réponses: 1
    Dernier message: 13/05/2011, 16h07
  2. Gestion des transactions dans les EJB
    Par casho dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 07/10/2010, 10h07
  3. [EJB2.1] [Websphere] Time out de transaction sur EJB
    Par tinkywinky dans le forum Java EE
    Réponses: 2
    Dernier message: 10/03/2009, 12h51
  4. Transactions et EJB
    Par Ungaro dans le forum JPA
    Réponses: 4
    Dernier message: 30/05/2008, 10h21
  5. [jBPM][EJB]You cannot commit during a managed transaction!
    Par zegreg dans le forum Wildfly/JBoss
    Réponses: 5
    Dernier message: 11/07/2007, 17h25

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