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 :

Configuration hibernate SessionFactory avec Mysql et Tomcat


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 48
    Par défaut Configuration hibernate SessionFactory avec Mysql et Tomcat
    Bonjour

    je suis en train de mettre en place une appli web : Mysql tourne, j'ai utilisé hibernate Tools pour créer mes DAO, et je fais tourner le tout sous tomcat.

    J'ai trouvé mon erreur sur beaucoup de forums, souvent sans réponse, et je ne comprend pas très bien sa source. Faute de corriger ma conf, si vous pouvez m'éclairer d'une manière ou d'une autre, je vous remercie d'avance.
    Est ce que cette erreur peut etre due a l'absence d'un jar, par exemple ?

    A la création de mon bean DAO j'ai l'erreur "Could not locate SessionFactory in JNDI".

    Merci !

    Voila mon fichier 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
    14
    15
     
    <?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.connection.password">root</property>
            <property name="hibernate.connection.url">jdbc:mysql://localhost/mydb</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
     
            <mapping resource="fr/globalaction/hibernate/Compte.hbm.xml" />
        </session-factory>
    </hibernate-configuration>
    une partie de mon DAO :

    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
     
    /**
     * Home object for domain model class Compte.
     * @see .Compte
     * @author Hibernate Tools
     */
    public class CompteDao implements ICompteDao {
     
    	private static final Log log = LogFactory.getLog(CompteDao.class);
     
    	private final SessionFactory sessionFactory = getSessionFactory();
     
    	protected SessionFactory getSessionFactory() {
    		try {
    			return (SessionFactory) new InitialContext()
    					.lookup("SessionFactory");
    		} catch (Exception e) {
    			log.error("Could not locate SessionFactory in JNDI", e);
    			throw new IllegalStateException(
    					"Could not locate SessionFactory in JNDI");
    		}
    	}
     
    	public List<Compte> getComptes() {
     
    		log.debug("getting Compte instance with id " + 1);
    		try {
    			Compte instance = (Compte) sessionFactory.getCurrentSession().get(
    					"Compte", 1);
    			if (instance == null) {
    				log.debug("get successful, no instance found");
    			} else {
    				log.debug("get successful, instance found");
    			}
     
    			List<Compte> result = new ArrayList<Compte>();
    			result.add(instance);
     
    			return result;
     
    		} catch (RuntimeException re) {
    			log.error("get failed", re);
    			throw re;
    		}
    	}

    mon applicationContext.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     
    <beans>
        <bean id="compteDao" class="fr.globalaction.hibernate.dao.CompteDao"/>
     
    </beans>

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 48
    Par défaut
    J'ai changé la création de mon SessionFactory dans le Dao, par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return new Configuration().configure().buildSessionFactory();
    et mon erreur est devenu :
    Could not initialize class org.hibernate.cfg.Configuration

    En fait mes fichiers hbm n'etaient pas présents dnas mon war.
    Je les ai mis dans src, mais ils n'étaient pas recopiés dans classes.
    mon hibernate.cfg.xml est bien dans WEB-INF...
    mais j'ai toujours la meme erreur.

    Qu'est ce qu'il faut vérifier d'autre ?

    Merci

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 48
    Par défaut
    Si ca peut aider ceux qui passeront par la :
    log4j est plus explicite, si hibernate.cfg.xml n'est pas valide, il affiche l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.hibernate.HibernateException: /hibernate.cfg.xml not found
    Le mien est donc ok.

    Toujours personne pour me guider ? :/

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 48
    Par défaut
    Solution :

    1. hibernate.cfg.xml doit etre placé dans WEB-INF/classes/
    2. n'importe quelle erreur de mapping affichera l'erreur Could not locate SessionFactory in JNDI. Pour trouver comprendre la source d'erreur, je vous conseille fortement d'installer log4j qui affichera la source de l'erreur, par dfaut dans la console.

    Merci de vos réponses

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/03/2010, 14h57
  2. Réponses: 10
    Dernier message: 25/02/2009, 16h34
  3. [tomcat] problème de configuration hibernate
    Par bastouffe dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 28/11/2006, 13h18
  4. gros problème tomcat avec mysql
    Par filipe93 dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 26/11/2006, 14h02
  5. Configuration PHP avec MySQL - FC5 ?
    Par Poseidon62 dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 28/06/2006, 11h04

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