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 :

JSF + Hibernate : HibernateException


Sujet :

JSF Java

  1. #1
    Membre éclairé Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Par défaut JSF + Hibernate : HibernateException
    Bonjour,

    J'ai une appli basique avec un formulaire.
    Je voudrais simplement insérer le prenom et le nom de la personne (qu'elle a saisit dans le formulaire) dans la BDD. (Sans passer par jsf, j'ai pu faire fonctionner hibernate avec un autre exemple)

    Voici le récapitulatif après saisit du formulaire (cliquer sur confirmer pour insérer en base) - j'ai viré le superflux:
    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
    24
    25
    26
    27
    28
    29
    30
    31
     
          <h:form>
            <h2>
             Confirmation inscription
            </h2>
            <h4>
              Confirmation d'inscription
            </h4>
            <table>
                <tr>
                  <td>Prénom:               </td>
                  <td>
                    <h:outputText value="#{UserBean.prenom}"/>             
                  </td>
                </tr>
                <tr>
                  <td>Nom:</td>
                  <td>
                    <h:outputText value="#{UserBean.nom}"/>
                  </td>
                </tr>
                <tr>
                  <td>Sexe:</td>
                  <td>
                    <h:outputText value="#{UserBean.genre}"/>
                  </td>
                </tr>
     
            </table>
            <p><h:commandButton value="Editer" action="revise"/>
               <h:commandButton value="Confirmer"  action="#{UserBean.ajoutUtilisateurConfirme}" />
    voici la fonction appelée par le clique sur "confirmer" dans la classe UserBean:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void ajoutUtilisateurConfirme(){
    		System.out.println("Prenom =" + this.getPrenom());
    		System.out.println("Nom = " + this.getNom());
    		AjoutUser p = new AjoutUser(this);
    	}
    La fonction d'ajout de User:
    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
    24
    public AjoutUser(UserBean usr){
    createUser(usr);
    }
     
    private static void createUser(UserBean usr) {
    	    Transaction tx = null;
    	    Session session = SessionFactoryUtil.getInstance().getCurrentSession();
    	    try {
    	      tx = session.beginTransaction();
    	      session.save(usr);
    	      tx.commit();
    	    } catch (RuntimeException e) {
    	      if (tx != null && tx.isActive()) {
    	        try {
    	// Second try catch as the rollback could fail as well
    	          tx.rollback();
    	        } catch (HibernateException e1) {
    	        	System.out.println("Error rolling back transaction");
    	        }
    	// throw again the first exception
    	        throw e;
    	      }
    	    }
    	}
    Et voici mon facesconfig, mais il n'y a qu'un bean UserBean:
    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
     
    <managed-bean>
    		<managed-bean-name>UserBean</managed-bean-name>
    		<managed-bean-class>com.ben.jsf.UserBean</managed-bean-class>
    		<managed-bean-scope>session</managed-bean-scope>
    	</managed-bean>
    	<navigation-rule>
    	<from-view-id>/main.jsp</from-view-id>
    		<navigation-case>
    			<from-outcome>register</from-outcome>
    			<to-view-id>/register.jsp</to-view-id>
    		</navigation-case>
    	</navigation-rule>
    	<navigation-rule>
    	<from-view-id>/register.jsp</from-view-id>
    		<navigation-case>
    			<from-outcome>register</from-outcome>
    			<to-view-id>/confirm.jsp</to-view-id>
    		</navigation-case>
    	</navigation-rule>
    Merci d'avance...
    Je me dis qu'il y a peut être un incompatibilité entre jsf et hibernate...
    au moment ou il récupère la session?

    J'espère que quelqu'un aura la réponse.
    Merci davance.

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Bonjour,

    Bon, je crois qu'il va falloir revoir 2 ou 3 principes de la programmation objet... La façon de créer un utilisateur est assez étrange, mais bon, passons.

    Tu dis que ça ne marche pas ? Pourrais-tu nous montrer le message d'erreur ?

    ps : Normalement, ta méthode ajoutUtilisateurConfirme doit retourner un String, vu qu'elle est liée à un <h:commandButton action="..."/>.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre éclairé Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Par défaut
    Pour poster le message, j'ai simplement simplifié au maximum "l'appli"
    Je suis parti d'un tuto jsf, et après j'ai juste voulu voir si je pouvais bien "pluggué" l'existant avec ma BDD.
    A la base, j'avais fait plusieurs package, mais vu que tout foirait....
    Enfin bref, exact pour le String de retour de la méthode mais ca ne corrige pas;

    voici la trace:
    javax.servlet.ServletException: org.hibernate.HibernateException
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)

    cause mère

    java.lang.ClassNotFoundException: org.hibernate.HibernateException
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    com.ben.jsf.UserBean.ajoutUtilisateurConfirme(UserBean.java:79)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    org.apache.el.parser.AstValue.invoke(AstValue.java:172)
    org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
    org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
    javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:71)
    com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:95)
    javax.faces.component.UICommand.broadcast(UICommand.java:384)
    org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)
    org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)
    org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)
    org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)
    com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:132)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Il semble tout simplement que ton projet n'inclue pas les dépendances Hibernate.

    Utilises-tu Maven ?

    Sinon, va jeter un oeil dans WEB-INF/lib pour y lister les dépendances...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre éclairé Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Par défaut
    Aussi, tout les fichiers sont dans le meme package, donc en theorie pas de souci au niveau de la recupération des informations dans les ficiers hbn.xlm

    Je me demande si il n'a pas du mal a récupérer le contexte???
    J'ai vu qu'en utilisant SPRING contexte était en quelque sorte décrit dans l'application context?

    Une idée?

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/09/2008, 18h07
  2. jboss-seam/jsf/hibernate : probleme de connexion
    Par mellissacold dans le forum Seam
    Réponses: 5
    Dernier message: 08/04/2008, 18h59
  3. Réponses: 1
    Dernier message: 03/07/2007, 14h57
  4. Réponses: 5
    Dernier message: 29/09/2006, 15h45
  5. recupération d'exception JSF Hibernate
    Par *alexandre* dans le forum JSF
    Réponses: 1
    Dernier message: 22/09/2006, 16h36

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