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

Hibernate Java Discussion :

[Debutant] [struts] Probleme avec hibernate


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut [Debutant] [struts] Probleme avec hibernate
    Je decouvre Hibernate et la je suis confronté a un probleme que je ne comprend pas de meme que mon entourage. j'ai suivi un tuto :
    http://www.laliluna.de/download/firs...utorial-en.pdf

    Mais ca ne marche pas du tout.

    Mon objectif et une premier prise en mais, soit par la simple verification du login et mot de passe en verifiant sur une base de donnée "test" et sur la table "user"

    hibernate.cfg.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
      <session-factory>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
        <mapping resource="socgen.portail.hibernate/user.hbm.xml"/>
      </session-factory>
    </hibernate-configuration>
    user.hbm.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="de.laliluna.example">
      <class name="User" table="user">
        <id column="name" name="name" type="java.lang.String">
        </id>
        <property column="mdp" name="mdp" type="java.lang.String"/>
      </class>
    </hibernate-mapping>
    UtilisateurMapping
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    package socgen.portail.hibernate.mapping;
     
    import java.util.Iterator;
    import java.util.List;
    import org.apache.log4j.Logger;
    import net.sf.hibernate.HibernateException;
    import net.sf.hibernate.Session;
    import net.sf.hibernate.Transaction;
    import socgen.portail.form.ConnexionForm;
    import socgen.portail.hibernate.HibernateSessionFactory;
    import socgen.portail.sdf.HibernateUtil;
    /**
     * @author laliluna
     *
     */
    public class UtilisateurMapping {
     
        public static ConnexionForm selectUser(String login) {
            Session session = null;
            Transaction tx = null;
            Logger log = Logger.getLogger("Utilisateur");
            log.info("Search user");
            ConnexionForm user = null;
            try {
    // [laliluna] get the session from the factory
                //session = HibernateSessionFactory.currentSession();
                session = (Session) HibernateUtil.getSessionFactory().getCurrentSession().beginTransaction();
    // [laliluna] always start a transaction before doing something
    // (even reading) from the database
     
                user = (ConnexionForm) session.find("select from User where login ="+ login);
     
    // [laliluna] commit your transaction or nothing is wrote to the db
                tx.commit();
    // [laliluna] clean up (close the session)
                session.close();
                return user;
     
            } catch (HibernateException e) {
    // [laliluna] when an error occured, try to rollback your
    // transaction
                if (tx != null) {
                    try {
                        tx.rollback();
                    } catch (HibernateException e1) {
                        log.warn("rollback not successful");
                    }
                }
                /*
                 * [laliluna] close your session after an exception!! Your session
                 * is in an undefined and unstable situation so throw it away!
                 *
                 */
                if (session != null) {
                    try {
                        session.close();
                    } catch (HibernateException e2) {
                        log.warn("session close not successful");
                    }
                }
            }
            return user;
        }
    }
    J'ai dabord utiliser la fonction de connection avec la database du tuto mais cela ne marché pas
    HibernateSessionFactory
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    package socgen.portail.hibernate;
     
    import net.sf.hibernate.HibernateException;
    import net.sf.hibernate.Session;
    import net.sf.hibernate.cfg.Configuration;
     
    /**
     * Configures and provides access to Hibernate sessions, tied to the
     * current thread of execution. Follows the Thread Local Session
     * pattern, see {@link http://hibernate.org/42.html}.
     */
    public class HibernateSessionFactory {
     
        /**
         * Location of hibernate.cfg.xml file.
         * NOTICE: Location should be on the classpath as Hibernate uses
         * #resourceAsStream style lookup for its configuration file. That
         * is place the config file in a Java package - the default location
         * is the default Java package.<br><br>
         * Examples: <br>
         * <code>CONFIG_FILE_LOCATION = "/hibernate.conf.xml".
         * CONFIG_FILE_LOCATION = "/com/foo/bar/myhiberstuff.conf.xml".</code>
         */
        private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
        /** Holds a single instance of Session */
        private static final ThreadLocal threadLocal = new ThreadLocal();
        /** The single instance of hibernate configuration */
        private static final Configuration cfg = new Configuration();
        /** The single instance of hibernate SessionFactory */
        private static net.sf.hibernate.SessionFactory sessionFactory;
     
        /**
         * Returns the ThreadLocal Session instance. Lazy initialize
         * the <code>SessionFactory</code> if needed.
         *
         * @return Session
         * @throws HibernateException
         */
        public static Session currentSession() throws HibernateException {
            Session session = (Session) threadLocal.get();
            if (session == null || !session.isConnected()) {
                if (sessionFactory == null) {
                    try {
                        cfg.configure(CONFIG_FILE_LOCATION);
                        sessionFactory = cfg.buildSessionFactory();
                    } catch (Exception e) {
                        System.err.println("%%%% Error Creating SessionFactory %%%%");
                        e.printStackTrace();
                    }
                }
                session = sessionFactory.openSession();
                threadLocal.set(session);
            }
            return session;
        }
     
        /**
         * Close the single hibernate session instance.
         *
         * @throws HibernateException
         */
        public static void closeSession() throws HibernateException {
            Session session = (Session) threadLocal.get();
            threadLocal.set(null);
            if (session != null) {
                session.close();
            }
        }
     
        /**
         * Default constructor.
         */
        private HibernateSessionFactory() {
        }
    }
    Un collegue m'a fourni cette fonction qui l'utilise mais elle n'a pas marche non plus

    HibernateSessionFactory
    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
    32
    33
    34
    35
    36
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package socgen.portail.sdf;
     
     
    import org.hibernate.cfg.AnnotationConfiguration;
    import org.hibernate.SessionFactory;
     
    /**
     * Hibernate Utility class with a convenient method to get Session Factory object.
     *
     * @author A329980
     */
    public class HibernateUtil {
        private static final SessionFactory sessionFactory;
     
        static {
            try {
                // Create the SessionFactory from standard (hibernate.cfg.xml)
                // config file.
                sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
            } catch (Throwable ex) {
                // Log the exception.
                System.err.println("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }
     
        public static SessionFactory getSessionFactory() {
            return sessionFactory;
        }
    }
    Je pense que l'erreur doit venir du hibernate.cfg.xml ou du user.hbm.xml

    Rappel j'utilise Struts 1.2.9 donc ma classe est (je ne pense pas que la fonction validate change le tout):

    ConnexionForm.java
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package socgen.portail.form;
     
    import javax.servlet.http.HttpServletRequest;
     
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;
     
    /**
     *
     * @author A329820
     */
    public class ConnexionForm extends org.apache.struts.action.ActionForm {
     
        private String login;
     
        public String getLogin() {
            return login;
        }
     
        public void setLogin(String login) {
            this.login = login;
        }
     
        private String mdp;
     
        public String getMdp() {
            return mdp;
        }
     
        public void setMdp(String mdp) {
            this.mdp = mdp;
        }
     
     
     
        /**
         *
         */
        public ConnexionForm() {
            super();
            // TODO Auto-generated constructor stub
        }
     
        /**
         * This is the action called from the Struts framework.
         * @param mapping The ActionMapping used to select this instance.
         * @param request The HTTP Request we are processing.
         * @return
         */
        @Override
        public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
            ActionErrors errors = new ActionErrors();
            String login = getLogin();
            String mdp = getMdp();
            if (login == null || login.length() < 1) {
                errors.add("login", new ActionMessage("error.invalid"));
                // TODO: add 'error.name.required' key to your resources
            }
            if (mdp == null || mdp.length() < 1) {
                errors.add("login", new ActionMessage("error.invalid"));
                // TODO: add 'error.name.required' key to your resources
            }
            String error = errors.toString();
            return errors;
        }
    }

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    Je suis peut etre trop vague...
    Dans le pire des cas pourriez vous me réorianté vers un tuto struts utilisant hibernate sur netbean 6.5?

    Merci

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    Voici ma page d'erreur

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    type Rapport d'exception
     
    message
     
    description Le serveur a rencontr� une erreur interne () qui l'a emp�ch� de satisfaire la requ�te.
     
    exception
     
    javax.servlet.ServletException: L'ex�cution de la servlet a lanc� une exception
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    java.lang.ExceptionInInitializerError
    	socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:126)
    	socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    java.lang.RuntimeException: Problème de configuration : problem parsing configuration/hibernate.cfg.xml
    	socgen.portail.sdf.HibernateUtil.<clinit>(HibernateUtil.java:17)
    	socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:126)
    	socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    net.sf.hibernate.HibernateException: problem parsing configuration/hibernate.cfg.xml
    	net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:972)
    	net.sf.hibernate.cfg.Configuration.configure(Configuration.java:911)
    	net.sf.hibernate.cfg.Configuration.configure(Configuration.java:897)
    	socgen.portail.sdf.HibernateUtil.<clinit>(HibernateUtil.java:14)
    	socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:126)
    	socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    org.dom4j.DocumentException: Error on line 1 of document http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd : The markup declarations contained or pointed to by the document type declaration must be well-formed. Nested exception: The markup declarations contained or pointed to by the document type declaration must be well-formed.
    	org.dom4j.io.SAXReader.read(SAXReader.java:482)
    	net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:967)
    	net.sf.hibernate.cfg.Configuration.configure(Configuration.java:911)
    	net.sf.hibernate.cfg.Configuration.configure(Configuration.java:897)
    	socgen.portail.sdf.HibernateUtil.<clinit>(HibernateUtil.java:14)
    	socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:126)
    	socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
    J'ai changé encor de HibernateUtil pour prendre celui du tuto de developpez.com

    http://defaut.developpez.com/tutorie...pse/hibernate/

    Voici le code HibernateUtil

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    package com.minosis.hibernate;
     
    import net.sf.hibernate.*;
    import net.sf.hibernate.cfg.*;
     
    public class HibernateUtil {
     
     private static final SessionFactory sessionFactory;
     
     static {
       try {
       // Crée la SessionFactory
       sessionFactory =
    	 new Configuration().configure().buildSessionFactory();
       } catch (HibernateException ex) {
       throw new RuntimeException("Problème de configuration : "
       + ex.getMessage(), ex);
       }
       }
     
     public static final ThreadLocal session = new ThreadLocal();
     
     public static Session currentSession()
    		throws HibernateException {
       Session s = (Session) session.get();
       // Ouvre une nouvelle Session, si ce Thread n'en a aucune
       if (s == null) {
       s = sessionFactory.openSession();
       session.set(s);
       }
       return s;
       }
     
     public static void closeSession()
    		throws HibernateException {
       Session s = (Session) session.get();
       session.set(null);
       if (s != null)
       s.close();
       }
     }

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    Bon j'ai encor changer mon HibernateUtil

    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
     
    package socgen.portail.sdf;
     
    import org.hibernate.*;
    import org.hibernate.cfg.*;
    public class HibernateUtil {
    private static final SessionFactory sessionFactory;
        static {
            try {
      // Crée la SessionFactory
            sessionFactory = new Configuration().configure().buildSessionFactory();
            } catch (HibernateException ex) {
                throw new RuntimeException("Pb de conf : " + ex.getMessage(), ex);
            }
    }    public static final ThreadLocal session = new ThreadLocal();
        //obtention de la session courante
        public static Session currentSession() throws HibernateException {
            Session s = (Session) session.get();
            // Ouvre une nouvelle Session, si ce Thread n'en a aucune
            if (s == null) {
                s = sessionFactory.openSession();
                session.set(s);
            }
            return s;
        }    //fermeture de session
        public static void closeSession() throws HibernateException {
            Session s = (Session) session.get();
            session.set(null);
            if (s != null)            s.close();
    }
    }
    Et la je croi que je tien le bon bout.
    J'ai une nouvelle erreur qui me confirme mes premier doutes qui sont que mes fichier de configuration sont mauvais. mais je cherche toujour l'erreur.

    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
    type Rapport d'exception
     
    message
     
    description Le serveur a rencontr� une erreur interne () qui l'a emp�ch� de satisfaire la requ�te.
     
    exception
     
    javax.servlet.ServletException: L'ex�cution de la servlet a lanc� une exception
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    java.lang.NoClassDefFoundError
    	socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:126)
    	socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    note La trace compl�te de la cause m�re de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/6.0.18.
    Ce topic va devenir mon journal intime de la semaine.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    Ca bug dans HibernateUtil a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sessionFactory = new Configuration().configure().buildSessionFactory();
    Et la trace est
    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
    javax.servlet.ServletException: L'ex�cution de la servlet a lanc� une exception
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    java.lang.NoClassDefFoundError
    	socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:126)
    	socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
    On commence peut etre a voir le bout du tunel (enfin du moins ya un panneau). ya un prob dans ma config mais je ne voi pas ou.

    Promi lorsque ce sera fini je nous ferai un tuto speciale :

    Netbeans 6.5 + struts + hibernate, la solution à vos problèmes!

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Commence déjà par passer à Hibernate 3. Le Hibernate 2 que tu utilise a sorti sa dernière version il y a presque 4 ans et demi. De plus mélanger un mapping hibernate 3 avec des classes Hibernate 2, c'est pas l'idéal. Pour le reste suffit de lire ton message d'erreur:

    java.lang.NoClassDefFoundError -> Il te manque une classe (un .jar vraissemblablement oublié ou pas dans la bonne version)
    socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:126) -> Tu essaie d'accéder à cette classe depuis cette ligne 126. C'est donc une classe explicitement référencée à cette ligne qui manque.

  7. #7
    Membre habitué Avatar de arnaud.tlse
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Points : 126
    Points
    126
    Par défaut
    Salut !

    Je sais pas si c'est en rapport avec ton erreur, et je voudrais pas dire de bêtise, mais dans ton fichier hibernate.cfg.xml à la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
    Il manquerait pas le numéro du port ?
    Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
    ?

    En tout cas moi j'ai ça ...

    Avec un escalier prévu pour la montée on réussi souvent à monter plus bas qu'on ne serait descendu avec un escalier prévu pour la descente.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    Pour cette erreur

    Citation Envoyé par tchize_ Voir le message
    java.lang.NoClassDefFoundError -> Il te manque une classe (un .jar vraissemblablement oublié ou pas dans la bonne version)
    socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:126) -> Tu essaie d'accéder à cette classe depuis cette ligne 126. C'est donc une classe explicitement référencée à cette ligne qui manque.
    Elle se trouve dans le HibernateUtil, j'en avais parlé avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sessionFactory = new Configuration().configure().buildSessionFactory();
    Et puis j'utilise le hibernate de Netbean 6.5 donc hibernate 3 mais a force de changer mon hibernateUtil je me suis perdu...

    Merci arnaud.tlse pour l'indication de

    CODE]<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>[[/CODE]

    J' aurai du le voir mais ca bug en amont, ma classe est fausse de base...

    Peut tu me donner le lien d'un bon tuto car je suis peaumé come tu t"en doute

    La perceverance mere de vertue.
    Merci

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par totonin Voir le message
    Elle se trouve dans le HibernateUtil, j'en avais parlé avant
    non elle se trouve dans la UtilisateurMapping.java à la ligne 126, il n'y a pas de référence à HibernateUtil dans ton message d'erreur

    Citation Envoyé par totonin Voir le message
    Peut tu me donner le lien d'un bon tuto car je suis peaumé come tu t"en doute
    Ton ocde est hibernate 2. Les packages net.sf.* été dépréciése dans les premières version de Hibernate 3 pour disparaitre complètement dans les dernière. Hibernate 3 utilise des packages en org.hibernate.*

    Pour la documentation Hibernante, il y a plein de documentation sur le site de hibernate, en français. Tu trouvera aussi des cours ici
    http://java.developpez.com/cours/?pa...-cat#hibernate

    attention à faire la différence entre hibernate 2 et 3. Dès que tu vois net.sf.hibernate dans les packages, c'est du hibernate 2!

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    Merci pour l'indication

    attention à faire la différence entre hibernate 2 et 3. Dès que tu vois net.sf.hibernate dans les packages, c'est du hibernate 2!

    ca va me permettre de netoyer le UtilisateurMapping il est vraiment pas bon dans ce cas la tu as bien raison de me le faire remarquer. (desolé)

    si non dans l'erreur de la ligne 126 dans HibernateUtil se refert a cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session = (Session) HibernateUtil.currentSession();
    Suite a cela, en utilisant le debuger, je rentre dans HibernateUtil a la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sessionFactory = new Configuration().configure().buildSessionFactory();
    et la j'ai une exception

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    throw new RuntimeException("Pb de conf : " + ex.getMessage(), ex);
    et ca s'arrete.

    le code de ma classe HibernateUtil:

    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
    32
    33
    34
    35
    36
    37
    38
    39
    package socgen.portail.sdf;
     
    import org.hibernate.*;
    import org.hibernate.cfg.*;
     
    public class HibernateUtil {
     
        private static final SessionFactory sessionFactory;
     
     
        static {
            try {
                // Crée la SessionFactory
                sessionFactory = new Configuration().configure().buildSessionFactory();
            } catch (HibernateException ex) {
                throw new RuntimeException("Pb de conf : " + ex.getMessage(), ex);
            }
        }
        public static final ThreadLocal session = new ThreadLocal();
        //obtention de la session courante
     
        public static Session currentSession() throws HibernateException {
            Session s = (Session) session.get();
            // Ouvre une nouvelle Session, si ce Thread n'en a aucune
            if (s == null) {
                s = sessionFactory.openSession();
                session.set(s);
            }
            return s;
        }    //fermeture de session
     
        public static void closeSession() throws HibernateException {
            Session s = (Session) session.get();
            session.set(null);
            if (s != null) {
                s.close();
            }
        }
    }
    merci et mea culpa pour mes excès

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par totonin Voir le message
    se refert a cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session = (Session) HibernateUtil.currentSession();
    Donc c'est soit la classe HibernateUtil qui manque, soit la classe Session utilisée pour le typecasting (peu probable mais avec tes mélanges pas impossible)! Note que si lors de l'initialisation statique, cette classe déclenche une erreur, elle sera considérée par le système comme n'existant pas.Dans ce cas, remonter plus haut dans les message d'erreur pour voir pourquoi la classe a raté son initialisation statique.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Points : 402
    Points
    402
    Par défaut
    Je pense que tu dois rajouter dans ton fichier hibernate.cfg.xml les lignes suivante à la fin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <mapping resource="socgen/portail/hibernate/mapping/Utilisateur.hbm.xml"/>
    <mapping resource="socgen/portail/hibernate/mapping/XXX.hbm.xml"/>  
    ...

  13. #13
    Membre habitué Avatar de arnaud.tlse
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Points : 126
    Points
    126
    Par défaut
    Moi je dirai +1 pour hibour.

    Dans mes fichiers de mapping persos les chemins vers mes hbm sont constitués du chemin d'accès avec des "/" comme séparateurs, d'après ce que j'ai vu dans ton fichier hibernate.cfg.xml tu as:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mapping resource="socgen.portail.hibernate/user.hbm.xml"/>
    Je verrai bien ça plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mapping resource="socgen/portail/hibernate/user.hbm.xml"/>
    Après à toi de vérifier que le chemin est le bon

    Avec un escalier prévu pour la montée on réussi souvent à monter plus bas qu'on ne serait descendu avec un escalier prévu pour la descente.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    J'ai mis aux normes mes fichier UtilisateurMapping et hibernateUtil et je les ai allegé de tout ce qui ne servez a rien (deselt, list ....)

    Ca donne

    UtilisateurMapping
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    package socgen.portail.hibernate.mapping;
     
    import org.apache.log4j.Logger;
    import org.hibernate.*;
    import org.hibernate.HibernateException;
    import socgen.portail.form.ConnexionForm;
    import socgen.portail.sdf.HibernateUtil;
     
    public class UtilisateurMapping {
     
        public static ConnexionForm selectUser(String login) {
            Session session = null;
            Transaction tx = null;
            Logger log = Logger.getLogger("Utilisateur");
            log.info("Search user");
            ConnexionForm user = null;
            try {
                session = (Session) HibernateUtil.getSessionFactory().getCurrentSession().beginTransaction();
     
                user = (ConnexionForm)session.createSQLQuery("select from User where login ="+ login);
     
                tx.commit();
                session.close();
                return user;
     
            } catch (HibernateException e) {
                if (tx != null) {
                    try {
                        tx.rollback();
                    } catch (HibernateException e1) {
                        log.warn("rollback not successful");
                    }
                }
                if (session != null) {
                    try {
                        session.close();
                    } catch (HibernateException e2) {
                        log.warn("session close not successful");
                    }
                }
            }
            return user;
        }
    }
    HibernateUtil
    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
    package socgen.portail.sdf;
     
    import org.hibernate.cfg.AnnotationConfiguration;
    import org.hibernate.SessionFactory;
     
    public class HibernateUtil {
        private static final SessionFactory sessionFactory;
     
        static {
            try {
                // Create the SessionFactory from standard (hibernate.cfg.xml)
                // config file.
                sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
            } catch (Throwable ex) {
                // Log the exception.
                System.err.println("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }
     
        public static SessionFactory getSessionFactory() {
            return sessionFactory;
        }
    }
    Et maintenant j'ai une nouvelle erreur... (on progresse)

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    javax.servlet.ServletException: L'ex�cution de la servlet a lanc� une exception
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    java.lang.ExceptionInInitializerError
    	socgen.portail.sdf.HibernateUtil.<clinit>(HibernateUtil.java:22)
    	socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:18)
    	socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    org.hibernate.MappingException: entity class not found: de.laliluna.example.User
    	org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:99)
    	org.hibernate.tuple.PropertyFactory.getGetter(PropertyFactory.java:168)
    	org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44)
    	org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:123)
    	org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
    	org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
    	org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    	org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
    	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
    	org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
    	socgen.portail.sdf.HibernateUtil.<clinit>(HibernateUtil.java:18)
    	socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:18)
    	socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    java.lang.ClassNotFoundException: de.laliluna.example.User
    	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    	java.lang.Class.forName0(Native Method)
    	java.lang.Class.forName(Class.java:164)
    	org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
    	org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:96)
    	org.hibernate.tuple.PropertyFactory.getGetter(PropertyFactory.java:168)
    	org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44)
    	org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:123)
    	org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
    	org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
    	org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    	org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
    	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
    	org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
    	socgen.portail.sdf.HibernateUtil.<clinit>(HibernateUtil.java:18)
    	socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:18)
    	socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
    Je vai voir pour le mapping

    Merci

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    J'ai une erreur que je ne comprend pas tres bien

    org.hibernate.MappingException: entity class not found: de.laliluna.example.User
    org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:99)
    org.hibernate.tuple.PropertyFactory.getGetter(PropertyFactory.java:168)
    org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44)
    org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:123)
    org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
    org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
    org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
    org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
    org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
    socgen.portail.sdf.HibernateUtil.<clinit>(HibernateUtil.java:13)
    socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:18)
    socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)


    et en regardant le mapping je vien de voir une autre belle boulette je n'avai pas changer (ca venait d'un tuto )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <hibernate-mapping package="de.laliluna.example.User">
    pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <hibernate-mapping package="socgen.portail.hibernate">
    Ce qui ma enlever cette erreur.
    Yep j'ai changer le mapping. mais ca ne marche toujour pas

    Il me reste :
    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
    javax.servlet.ServletException: L'ex�cution de la servlet a lanc� une exception
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    java.lang.NoClassDefFoundError
    	socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:18)
    	socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
    Et la il ne reconnai plus la class HibernateUtil...

    Je reboute netbeans relance mon programme et la nous retrouvons la trace d'erreur ou il reconnai HibernateUtil erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    java.lang.ExceptionInInitializerError
    	socgen.portail.sdf.HibernateUtil.<clinit>(HibernateUtil.java:17)
    ...
    Et il me redemande la classe fantome "de.laliluna.example.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
    org.hibernate.MappingException: entity class not found: de.laliluna.example.User
    	org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:99)
    	org.hibernate.tuple.PropertyFactory.getGetter(PropertyFactory.java:168)
    	org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44)
    	org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:123)
    	org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
    	org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
    	org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    	org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
    	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
    	org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
    	socgen.portail.sdf.HibernateUtil.<clinit>(HibernateUtil.java:13)
    	socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:18)
    	socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
    je relance mon prog une nouvelle fois sans rebooter netbean cette fois et la on revien a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    java.lang.NoClassDefFoundError
    	socgen.portail.hibernate.mapping.UtilisateurMapping.selectUser(UtilisateurMapping.java:18)
    	socgen.portail.action.ConnexionAction.execute(ConnexionAction.java:51)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
    Ya eut trop de melange je devrai tout recommencer...

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    j'ai déjà expliqué, si tu a une exception dans ton initialisation statique de la classe, ta classe HibernateUtil sera considérée comme inexistante par le classloader.

    Donc dans ton cas, t'as eu une exception ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        static {
            try {
                // Create the SessionFactory from standard (hibernate.cfg.xml)
                // config file.
                sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
            } catch (Throwable ex) {
                // Log the exception.
                System.err.println("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    Et comment puis je debugger cela car comme tu la remarquer je ne suis qu'un humble debutant?

    Pour autant ayant effectuer quelsque recherche je suis tombé sur quelqu'un ayant rencontrer la meme erreur et il la resolu dans son mapping sans pour autant etre clair dans sa methode de correction...

    http://www.bourzeix.com/weblog/post/...-web-hibernate

    rappel de l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    java.lang.ExceptionInInitializerError
    	socgen.portail.sdf.HibernateUtil.<clinit>(HibernateUtil.java:18)
    ...

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    il faut regarder la cause de ton 'exception in initializer'. Tu doit avoir dans le stacktrace "caused by ..." Si t'as des doutes, affiche le stacktrace complet de ton ExceptionInInitializer, mais le message d'erreur doit normalement être explicite.

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    comme tu l'avais dit Mon problem se trouve dans le static. mais pour une raison obscure il ne l'execute pas... j'ai donc deplacer la ligne de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sessionFactory = new Configuration().configure()
                        .buildSessionFactory();
    dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private static SessionFactory getSessionFactory() throws HibernateException {
            sessionFactory = new Configuration().configure("/socgen/portail/hibernate/")
                        .buildSessionFactory();
            return sessionFactory;//SingletonSessionFactory.getInstance();
        }

    Mais sessionFactory = null. ceci doit etre du au ".configure(), je lui avais donnée le path de user.hbm.xml mais ca n'a pas plus marcher.

    Il faut savoir que l'HibernateUtil, user.hbm et hibernate.cfg sont dans le meme dossier. dans ce cas doit-on mettre le path complet ou seulement le nom du fichier? j'ai regarder le faq mais ce n'est pas tres clair

    De plus les .printStackTrace n'affiche rien et je ne trouve pas les journeaux d'erreur de tomcat...

    Merci infiniment du coup de main

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par totonin Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private static SessionFactory getSessionFactory() throws HibernateException {
            sessionFactory = new Configuration().configure("/socgen/portail/hibernate/")
                        .buildSessionFactory();
            return sessionFactory;//SingletonSessionFactory.getInstance();
        }
    Configure prend en paramètre un fichier .hbm.xml, je sais pas ce que t'esaie de faire en lui passant un nom de dossier. Le code que tu avait au départ avec l'initialisaiton statique est pas mauvais, tout ce qu'il faut c'est l'exception qui se déclenche quand tu passe dessus. Sans l'exception, impossible de savoir quelle est ton erreur dans tes fichiers de config.
    Mais sessionFactory = null. ceci doit etre du au ".configure(), je lui avais donnée le path de user.hbm.xml mais ca n'a pas plus marcher.
    buildSessionFactory ne renvoie jamais null. Soit il renvoie une session, soit il lance une exception si il y a un problème. Comme t'es en mode debug, si t'as fait du pas à pas, n'oublie pas que, tant que tu n'es pas passé au delà de la ligne, la valeur de retour n'est pas encore stockée dans dans la variable.
    De plus les .printStackTrace n'affiche rien et je ne trouve pas les journeaux d'erreur de tomcat...
    Merci infiniment du coup de main
    Il apparaitront soit dans la console associée dans ton IDE si tu lance ton tomcat depuis ton IDE, soit dans catalina.out, soit dans tomcat.log, suivant ta configuration.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [debutant][swing] Probleme avec un Jpanel
    Par JeanMoul dans le forum Débuter
    Réponses: 6
    Dernier message: 27/08/2005, 19h07
  2. [Struts] Problème avec la méthode validate
    Par clement42 dans le forum Struts 1
    Réponses: 2
    Dernier message: 09/06/2005, 10h52
  3. Problèmes avec Hibernate (sous Eclipse)
    Par Pierric dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/04/2005, 14h35
  4. [STRUTS] Probleme avec le tiles Framework
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 7
    Dernier message: 02/10/2004, 14h11
  5. [Debutant(e)]probleme avec un replaceAll
    Par Jovial dans le forum Langage
    Réponses: 11
    Dernier message: 14/06/2004, 16h02

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