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 :

[Hibernate] : Erreur Could not find datasource


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 30
    Points : 18
    Points
    18
    Par défaut [Resolu] [Hibernate] : Erreur Could not find datasource
    Bonjour les amis !!

    J'utilise Hibernate 3.0, avec Netbeans 4,1 et son Tomcat integrer.
    j ai cree un pool de connexion, et donc un acces JNDI, je teste avec une servlet, ca marche.

    Deuxieme etape : faire joujou avec hibernate :

    Je declare mon hibernate-cfg.xml comme ceci :
    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
     
    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
      "-//Hibernate/Hibernate Configuration DTD//EN"
      "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
     
    <hibernate-configuration>
        <session-factory>
            <property name="connection.datasource">java:comp/env/jdbc/test</property>
            <property name="show_sql">true</property>
            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
            <!--Mapping files-->
            <mapping resource="User_hibernate/User.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>

    Puis je cree le fichier User.hbm.xml pour mapper ma pauvre table users avec un id,nom et prenom.

    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
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     
        <hibernate-mapping>
        <class name="User_hibernate.User" table="users">
            <!-- l'ID de la table .-->
                     <id name="Id" type="int" column="Id" unsaved-value="0"><generator class="identity"/></id>
            <!-- le nom -->
                      <property name="Nom"><column name="Nom"/></property>
            <!-- le prenom -->
                      <property name="Prenom"><column name="Prenom"/></property>
        </class>
    </hibernate-mapping>
    Je cree un bean user avec les champs getters et setters,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class User extends Object implements Serializable
    Puis je cree la classe qui fait tout :

    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
     
    package User_hibernate;
     
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.hibernate.*;
    import org.hibernate.cfg.*;
     
    public class HibernateUtil
    {
     
        private static Log log = LogFactory.getLog(HibernateUtil.class);
        private static final SessionFactory sessionFactory;
     
     
        static
        {
            try {
     
                // Create the SessionFactory
                sessionFactory = new Configuration().configure().buildSessionFactory();
                } 
                catch (Throwable ex) {
                // Make sure you log the exception, as it might be swallowed
                    System.out.println("ERROR");
                log.error("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }
     
     
        public static final ThreadLocal session = new ThreadLocal();
     
        public static Session currentSession()
        {
            Session s = (Session) session.get();
            // Open a new Session, if this Thread has none yet
            if (s == null)
            {
                s = sessionFactory.openSession();
                session.set(s);
            }
            return s;
        }
     
     
        public static void closeSession()
        {
            Session s = (Session) session.get();
            if (s != null)
            s.close();
            session.set(null);
        }
    }
    J ai trouver cet exemple dans un tutorial.

    Pis dans la servlet, j appelle trankil

    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
     
     Session session;
            Transaction tx;
            //Creation de notre objet Session grace à notre HibernateUtil  
    	session = HibernateUtil.currentSession();
     
    	//Ouverture de notre transaction avec Hibernate grace a la session 
            tx = session.beginTransaction();
     
    	// Ajout d'un utilisateur en utilisant notre bean User préalablement configuré dans Hibernate 
            User toto = new User();
            toto.setNom("lateteatoto");
            toto.setPrenom("toto");
     
    	// On sauve, on renvoi, notre bean à la session Hibernate   
            session.save(toto);
     
            // Nous commitons la transaction vers la base
            tx.commit();
     
    	//Enfin on ferme la session 
            HibernateUtil.closeSession();
    Je detaille pour que vous puissiez bien m aider

    Et la j ai une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    java.lang.ExceptionInInitializerError
            at User_hibernate.HibernateUtil.<clinit>(HibernateUtil.java:26)
            at Test.main(Test.java:21)
    Caused by: org.hibernate.HibernateException: Could not find datasource
    ca craque ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     sessionFactory = new Configuration().configure().buildSessionFactory();

    Ce qu est bizarre, c est que ca m insere une ligne des fois dans la database.

    Bref, je comprends rien.

    Si une ame charitable gourou d hibernate pouvait m aider !!

    Merci Merci !!

  2. #2
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    tu as pensé a declarer ton datasource dans le web.xml de l'application ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Oui c est bien declarer.

    J ai corriger la table dans mysql. En fait id n etait pas auto-incrementer et donc les lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <generator class="identity"/>
    dans la config Xml

    et dans la servlet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    User toto = new User();
    toto.setNom("lateteatoto");
    toto.setPrenom("toto");
    faisaient tout planter.

    j ai changre pas mal de truc mais je crois que l erreur venait de la, parce que si j ajoutais en donnant l id, ca marchait.

    merci pour ton aide Lunatix.

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

Discussions similaires

  1. Erreur : "Could not find default endpoint element that references contract"
    Par obitskater dans le forum Windows Communication Foundation
    Réponses: 0
    Dernier message: 27/02/2009, 10h30
  2. Réponses: 6
    Dernier message: 05/11/2008, 11h32
  3. [jBPM] JobExecutorThread : Could not find datasource
    Par Jacques - 06 dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 21/08/2007, 14h28
  4. Erreur : could not find the main class
    Par garzouille dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 04/06/2007, 19h25
  5. Réponses: 3
    Dernier message: 30/03/2005, 23h15

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