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

JSF Java Discussion :

Problème de mise en oeuvre de managed beann


Sujet :

JSF Java

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Points : 127
    Points
    127
    Par défaut Problème de mise en oeuvre de managed bean
    Bonjour,
    Je réalise un application de type CRUD. Pour les insertions dans le base de données, j'ai comme managed bean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public class ProfilManagedBean {
     
        @EJB
        SuiviProfil suiviP;
     
        Profil prof;
     
         public ProfilManagedBean() {
            this.prof = new Profil();
        }
     
        public String addProfil(){
            suiviP.enregProfil(prof);
            return"addProf";
        }
     
    }
    Mais à l'exécution, les informations ne sont pas enregistré dans la base de données et j'ai cette exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.servlet.ServletException: #{ProfilManagedBean.addProfil}: javax.ejb.EJBException
    Comment puis-je faire pour enregistrer les information dans la base de données. Merci

  2. #2
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Peut-on voir la trace complète?

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Points : 127
    Points
    127
    Par défaut
    Bonsoir Heimdal,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    État HTTP 500 -
     
    type Rapport d'exception
     
    Message
     
    DescriptionLe serveur a rencontré une erreur interne () qui l'a empêché de remplir cette requête.
     
    Exception
     
    javax.servlet.ServletException: #{ProfilManagedBean.addProfil}: java.lang.NoSuchMethodError: com.rime.connect.model.ejb.utilisateur.session.SuiviProfil.enregProfil(Lcom/rime/connect/model/ejb/utilisateur/entity/Profil;)Lcom/rime/connect/model/ejb/utilisateur/entity/Profil;
    Cause racine
     
    javax.faces.FacesException: #{ProfilManagedBean.addProfil}: java.lang.NoSuchMethodError: com.rime.connect.model.ejb.utilisateur.session.SuiviProfil.enregProfil(Lcom/rime/connect/model/ejb/utilisateur/entity/Profil;)Lcom/rime/connect/model/ejb/utilisateur/entity/Profil;
    Cause racine
     
    javax.faces.el.EvaluationException: java.lang.NoSuchMethodError: com.rime.connect.model.ejb.utilisateur.session.SuiviProfil.enregProfil(Lcom/rime/connect/model/ejb/utilisateur/entity/Profil;)Lcom/rime/connect/model/ejb/utilisateur/entity/Profil;
    Cause racine
     
    java.lang.NoSuchMethodError: com.rime.connect.model.ejb.utilisateur.session.SuiviProfil.enregProfil(Lcom/rime/connect/model/ejb/utilisateur/entity/Profil;)Lcom/prime/connect/model/ejb/utilisateur/entity/Profil;
    note Les suivis de pile complets de l'exception et de ses causes principales sont disponibles dans les journaux Sun GlassFish Enterprise Server v2.1.
     
    Sun GlassFish Enterprise Server v2.1

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Points : 118
    Points
    118
    Par défaut
    ton 1er post : javax.ejb.EJBException
    ton 2ème post : java.lang.NoSuchMethodError
    Ce n'est pas la même erreur ?

    Tu peux me montrer ta méthode enregProfil() ?

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Points : 127
    Points
    127
    Par défaut
    Bonjour Scorplayer,
    Je dois avouer que entre les deux posts j'ai fait quelques modifications au niveau de mes méthodes. Les insertions marchent maintenant, mais il y a quelque chose que je n'arrive pas à comprendre.
    Je m'explique: dans ma managedBean, j'ai la méthode (un peu modifier)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Profil profil;
    public String addProfil(){
            profil = (Profil) suiviP.enregProfil(prof);
            return "addProf";
    }
    Dans ma session "SuiviProfilFacade" j'ai la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @PersistenceContext(unitName = "app-PU")
        private EntityManager em;
     
        public void create(Profil profil) {
            em.persist(profil);
        }
    (Là où se trouve le problème)
    Dans ma session "SuiviProfil" j'ai la méthode "enregProfil" qui ne marche pas de cette façon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SuiviProfilFacade SuiviPf;
    public Profil enregProfil(Profil newProf) {
            SuiviPf.create(newProf);
            return newProf;
    }
    Mais qui marche bien ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @PersistenceContext(unitName = "app-PU")
        private EntityManager em;
    public Profil enregProfil(Profil newProf) {
            em.persist(newProf);
            return newProf;
    }
    Il me semble bien que les deux méthodes sont pareils, parce que em.persit(newProf) dans l'une est exécutée par SuiviPf.create(newProf) dans l'autre.
    J'espère avoir bien expliqué mon problème. Merci

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Points : 118
    Points
    118
    Par défaut
    Il te manque l'annotation @EJB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @EJB
    SuiviProfilFacade SuiviPf;
    public Profil enregProfil(Profil newProf) {
            SuiviPf.create(newProf);
            return newProf;
    }
    A condition que ta Facade soit bien déclarée comme EJB Session.

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Points : 127
    Points
    127
    Par défaut
    ça marche très bien maintenant
    Merci

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Points : 118
    Points
    118
    Par défaut
    Petit détail : tu peux aussi utiliser la méthode merge() à la place de persist().
    La différence est que merge() te renvoie l'objet tel qu'il a été enregistré en base (avec sa clé primaire).

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Points : 127
    Points
    127
    Par défaut
    Je croyais que merge()était utilisé pour les mise à jour. Visiblement j'ai encore beaucoup à apprendre. Encore une fois merci

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Points : 118
    Points
    118
    Par défaut
    Le merge() marche pour la création et les mises à jour. Sûrement pareil pour persist().

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/03/2014, 00h29
  2. [2.x] Mopa Boostrap Bundle : Problème de mise en oeuvre
    Par bilbot dans le forum Symfony
    Réponses: 5
    Dernier message: 21/03/2014, 16h58
  3. Problème de mise en oeuvre de l'héritage et polymorphisme
    Par jeanjean6 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 24/05/2010, 20h35
  4. [Cewolf] Problème de mise en oeuvre
    Par mat453 dans le forum Struts 1
    Réponses: 1
    Dernier message: 26/09/2007, 17h07

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