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 :

problème ouverture Session factory


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut problème ouverture Session factory
    Bonjour à tous,

    Je dois coder l'accès à une base de donnée MySQL à l'aide d'Hibernate. J'ai téléchagé tous les fichier .jar mais j'ai un probleme lorsque je veux ouvrir une session factory :

    Voici le code de la classe créant la session factory :
    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
    package util;
     
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.*;
     
    public class HibernateUtil {
     
    public static final SessionFactory sessionFactory;
     
    	static
    	{
    		try
    		{
    //	        Création de la SessionFactory à partir de hibernate.cfg.xml
    			sessionFactory = new Configuration().configure().buildSessionFactory();
    		}
     
    		catch (Throwable ex) 
    		{
    //	 Make sure you log the exception, as it might be swallowed
    			System.err.println("Initial SessionFactory creation failed." + ex);
    			throw new ExceptionInInitializerError(ex);
    		}
    	}
     
    	public static final ThreadLocal session = new ThreadLocal();
     
    	public static SessionFactory getSessionFactory()
    	{
    		return sessionFactory;
    	}
     
    }
    Le fichier de configuration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?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 name="SelectNew">
            <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
            <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
            <property name="hibernate.connection.url">jdbc:mysql://localhost/essai</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
            <mapping resource="fr/improve/selectnew/Personne.hbm.xml" />
                </session-factory>
    </hibernate-configuration>
    Et voici l'erreur lors de l’exécution :
    Initial SessionFactory creation failed.java.lang.NoSuchMethodError: net.sf.cglib.proxy.Enhancer.setInterceptDuringConstruction(Z)V
    Exception in thread "main" java.lang.ExceptionInInitializerError
    at util.HibernateUtil.<clinit>(HibernateUtil.java:24)
    at fr.improve.selectnew.Select.main(Select.java:18)
    Caused by: java.lang.NoSuchMethodError: net.sf.cglib.proxy.Enhancer.setInterceptDuringConstruction(Z)V
    at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:126)
    at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
    at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
    at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:295)
    at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
    at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
    at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
    at util.HibernateUtil.<clinit>(HibernateUtil.java:17)
    ... 1 more
    Je suis débutant dans l'utilisation d'Hibernate. J'ai utilisé seulement les packages org.hibernate.*. Faut-il également utiliser les packages net.sf.* ?

    Merci d'avance pour votre aide.

  2. #2
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut problème ouverture Session factory
    Là où tu essaies d'appeler ta sessionfactory tu dois avoir un truc de genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Session session = HibernateUtil.getSessionFactory().openSession();
    Transaction tx = session.beginTransaction();
    tu fais ton traitement

    puis à la fin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tx.commit();
    session.close();

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Voici le code ou j'appelle ma session factory pour effectuer un Select sur une table MySQL :

    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
    import util.*;
    import java.util.*;
    import org.hibernate.*;
     
     
    public class Select {
     
    public static void main(String[] args) {
     
    try
    {			
    Session session = HibernateUtil.getSessionFactory().openSession();	
     
    List result = session.createQuery("from Personne").list();
     
    Iterator it = result.iterator();
     
    while(it.hasNext())
    {
    Personne pers = (Personne)it.next();
    System.out.print(pers.getDate());
    }
     
    session.close();
     
    } 
     
    catch (HibernateException e)
    {
    e.printStackTrace();
    }
    J'obtient toujours la meme erreur :
    Initial SessionFactory creation failed.java.lang.NoSuchMethodError: net.sf.cglib.proxy.Enhancer.setInterceptDuringConstruction(Z)V
    Exception in thread "main" java.lang.ExceptionInInitializerError
    at util.HibernateUtil.<clinit>(HibernateUtil.java:26)
    at fr.improve.selectnew.Select.main(Select.java:20)
    Je pense que lors de l'ouverture de la session factory, on appelle une méthode qui n'existe pas.
    Les packages que j'utilise sont org.hibernate.* de la version hibernate 3.
    Y a-t-il d'autred packages à utiliser lorsque on utilise hibernate 3 ?

    Merci pour votre aide.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    Citation Envoyé par inzagi Voir le message
    J'obtient toujours la meme erreur :

    Initial SessionFactory creation failed.java.lang.NoSuchMethodError: net.sf.cglib.proxy.Enhancer.setInterceptDuringConstruction(Z)V
    Exception in thread "main" java.lang.ExceptionInInitializerError
    at util.HibernateUtil.<clinit>(HibernateUtil.java:26)
    at fr.improve.selectnew.Select.main(Select.java:20)


    Je pense que lors de l'ouverture de la session factory, on appelle une méthode qui n'existe pas.
    Les packages que j'utilise sont org.hibernate.* de la version hibernate 3.
    Y'a t'il d'autre packages à utiliser lorsque on utilise hibernate 3 ?
    Hibernate a des dépendences avec d'autres librairies, et là en l'occurrence il te faut la bonne version du cglib.jar. Normalement tu devrais la trouver dans la distribution hibernate que tu as téléchargée, si tu l'as téléchargée avec toutes ses dépendences. Moi j'ai la version cglib-2.1.3.jar et la méthode
    net.sf.cglib.proxy.Enhancer.setInterceptDuringConstruction(Z) en question y est bien présente.
    Voilà, vérifie bien du coté des dépendences, et le problème devrait être réglé.

Discussions similaires

  1. Problème ouverture session 5250 sur l'AS400 )
    Par pempeme inoussa dans le forum AS/400
    Réponses: 8
    Dernier message: 16/12/2013, 18h15
  2. [WS 2008 R2] Problème ouverture session sur ferme tse
    Par rouchmi dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 27/11/2013, 15h51
  3. Problème Ouverture session - stratégie
    Par Hurricae dans le forum Windows XP
    Réponses: 1
    Dernier message: 26/06/2011, 13h04
  4. problème de session factory
    Par bb_esca dans le forum Hibernate
    Réponses: 4
    Dernier message: 28/07/2009, 17h18

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