-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 
Author Message
 Post subject: Fichier de config introuvable (hibernate.cfg.xml not found)
PostPosted: Fri Apr 09, 2010 4:51 am 
Newbie

Joined: Fri Apr 09, 2010 4:31 am
Posts: 7
Bonjour à tous

Je suis nouveau par rapport à Hibernate.

J'utilise JBuilder2006 Service Pack1 sous windows xp avec hibernate 3. le fichier hibernate est bien présent dans le chemin indiqué mais lors de l'éxécution j'ai le message :
"Initial SessionFactory creation failed.org.hibernate.HibernateException: D:/SERENIX/Projets/JAVA/hibernateTuto/src/hibernate.cfg.xml not found"

Pour tester l'existence du fichier dans la classe HibernateUtil j'ai ajouté le code d'impression du contenu du fichier dans la console. Ce contenu est bien affiché dans la console lors de l'exécution comme vous pourrez le voir plus bas.
J'ai urgemment besoin de votre assistance.
Merci de votre prompte réaction


Code de la classe HibernateUtil
*************************

package com.serenix.hibernate.tuto.tools;



import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.serenix.file.basic.FileManager;


/**
*
* @author KAMGA Marc Olivier
*
*/
public class HibernateUtil {
/**
*
*/
private static final SessionFactory sessionFactory = buildSessionFactory();
/**
*
* @return
*/
private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
StringBuffer content = FileManager.getContentBuffer("D:/SERENIX/Projets/JAVA/hibernateTuto/src/hibernate.cfg.xml");
System .out.println("********** Impression contenu de D:/SERENIX/Projets/JAVA/hibernateTuto/src/hibernate.cfg.xml ************");
System .out.println(content.toString());
System .out.println("**********Fin impression contenu de D:/SERENIX/Projets/JAVA/hibernateTuto/src/hibernate.cfg.xml ************");
System .out.println("************************************************************************************************************");
return new Configuration().configure("D:/SERENIX/Projets/JAVA/hibernateTuto/src/hibernate.cfg.xml").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);
}
}
/**
*
* @return
*/
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static final ThreadLocal session = new ThreadLocal();
/**
*
* @return
* @throws HibernateException
*/
public static Session getCurrentSession()
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;
}
/**
*
* @throws HibernateException
*/
public static void closeSession()
throws HibernateException {
Session s = (Session) session.get();
session.set(null);
if (s != null)
s.close();
}

}





Sortie Console lors de l'exécution
**************************

"C:\Program Files\Java\jdk1.6.0_06\bin\javaw" -classpath "D:\SERENIX\Projets\JAVA\hibernateTuto\classes;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\required\hibernate3.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\required\dom4j-1.6.1.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\required\antlr-2.7.6.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\required\slf4j-api-1.5.11.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\required\slf4j-nop-1.5.11.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\required\slf4j-ext-1.5.11.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\required\javassist-3.9.0.GA.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\required\commons-collections-3.1.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\required\jta-1.1.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\bytecode\javassist\javassist-3.9.0.GA.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\bytecode\cglib\cglib-2.2.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\optional\ehcache\ehcache-1.5.0.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\optional\c3p0\c3p0-0.9.1.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\optional\jbosscache\jbosscache-core-3.2.1.GA.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\optional\oscache\oscache-2.1.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\optional\proxool\proxool-0.8.3.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\optional\infinispan\infinispan-core-4.0.0.CR3.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\optional\swarmcache\swarmcache-1.0RC2.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\db\database.jar;D:\SERENIX\Projets\JAVA\hibernateTuto\lib\db\hsqldb.jar;D:\SERENIX\Projets\JAVA\file\classes;D:\SERENIX\tools\poi\poi-3.5-FINAL\poi-3.5-FINAL-20090928.jar;D:\SERENIX\tools\poi\poi-3.5-FINAL\poi-ooxml-3.5-FINAL-20090928.jar;D:\SERENIX\tools\poi\poi-3.5-FINAL\poi-scratchpad-3.5-FINAL-20090928.jar;D:\SERENIX\tools\poi\poi-3.5-FINAL\poi-contrib-3.5-FINAL-20090928.jar;D:\SERENIX\tools\poi\poi-3.5-FINAL\ooxml-lib\dom4j-1.6.1.jar;D:\SERENIX\tools\poi\poi-3.5-FINAL\ooxml-lib\geronimo-stax-api_1.0_spec-1.0.jar;D:\SERENIX\tools\poi\poi-3.5-FINAL\ooxml-lib\ooxml-schemas-1.0.jar;D:\SERENIX\tools\poi\poi-3.5-FINAL\ooxml-lib\xmlbeans-2.3.0.jar;D:\SERENIX\tools\poi\poi-3.5-FINAL\lib\commons-logging-1.1.jar;D:\SERENIX\tools\poi\poi-3.5-FINAL\lib\junit-3.8.1.jar;D:\SERENIX\tools\poi\poi-3.5-FINAL\lib\log4j-1.2.13.jar;D:\SERENIX\Projets\JAVA\reflection\classes;D:\SERENIX\Projets\JAVA\math\classes;C:\Program Files\Java\jdk1.6.0_06\lib\jconsole.jar;C:\Program Files\Java\jdk1.6.0_06\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_06\lib\htmlconverter.jar;C:\Program Files\Java\jdk1.6.0_06\lib\tools.jar;C:\Program Files\Java\jdk1.6.0_06\sample\jnlp\servlet\jardiff.jar;C:\Program Files\Java\jdk1.6.0_06\sample\jnlp\servlet\jnlp.jar;C:\Program Files\Java\jdk1.6.0_06\sample\jnlp\servlet\jnlp-servlet.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\im\indicim.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\im\thaiim.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_06\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\Program Files\Java\jdk1.6.0_06\demo\plugin\jfc\CodePointIM\CodePointIM.jar;C:\Program Files\Java\jdk1.6.0_06\demo\jfc\CodePointIM\CodePointIM.jar;C:\Program Files\Java\jdk1.6.0_06\demo\jfc\Java2D\Java2Demo.jar;C:\Program Files\Java\jdk1.6.0_06\demo\scripting\jconsole-plugin\jconsole-plugin.jar" com.serenix.hibernate.tuto.test.Tester
********** Impression contenu de D:/SERENIX/Projets/JAVA/hibernateTuto/src/hibernate.cfg.xml ************
<?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 >

<!-- local connection properties -->
<property name="hibernate.connection.url">jdbc:hsqldb:file:c:\hsqldb\data</property>
<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="hibernate.connection.username">SA</property>
<property name="hibernate.connection.password"></property>
<!-- property name="hibernate.connection.pool_size"></property -->

<!-- dialect for HypersonicSQL -->
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>

<property name="hibernate.show_sql">false</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<mapping resource="com/serenix/hibernate/tuto/xml/Bank.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Bankbranch.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Company.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Compaccount.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Compcontact.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Euser.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Domain.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Linebusiness.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Businessgrp.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Businesscat.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Coverage.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Linebuscover.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Manager.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Product.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Prodcomp.hbm.xml" />
<mapping resource="com/serenix/hibernate/tuto/xml/Prodversion.hbm.xml" />
</session-factory>
</hibernate-configuration>
**********Fin impression contenu de D:/SERENIX/Projets/JAVA/hibernateTuto/src/hibernate.cfg.xml ************
************************************************************************************************************
Initial SessionFactory creation failed.org.hibernate.HibernateException: D:/SERENIX/Projets/JAVA/hibernateTuto/src/hibernate.cfg.xml not found
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.serenix.hibernate.tuto.tools.HibernateUtil.buildSessionFactory(HibernateUtil.java:42)
at com.serenix.hibernate.tuto.tools.HibernateUtil.<clinit>(HibernateUtil.java:23)
at com.serenix.hibernate.tuto.test.Tester.getBanks(Tester.java:102)
at com.serenix.hibernate.tuto.test.Tester.main(Tester.java:133)
Caused by: org.hibernate.HibernateException: D:/SERENIX/Projets/JAVA/hibernateTuto/src/hibernate.cfg.xml not found
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170)
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1497)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1519)
at com.serenix.hibernate.tuto.tools.HibernateUtil.buildSessionFactory(HibernateUtil.java:37)
... 3 more


Top
 Profile  
 
 Post subject: Re: Fichier de config introuvable (hibernate.cfg.xml not found)
PostPosted: Fri Apr 09, 2010 5:29 am 
Regular
Regular

Joined: Thu May 07, 2009 5:56 am
Posts: 94
Location: Toulouse, France
salut, il faut savoir que Hibernate utilise le classloader pour retrouver le fichier de configuration quand celui ici est spécifié par une string (ton cas). le système de chargement d'une ressource par le classloader ne fonctionne pas si tu spécifies le chemin complètement qualifié comme ça ("D:/SERENIX/Projets/JAVA/hibernateTuto/src/hibernate.cfg.xml"). Tu dois mettre seulement hibernate.cfg.xml et s'assurer que le D:/SERENIX/Projets/JAVA/hibernateTuto/src/ soit présent dans le classloader.
sinon, si tu veux vraiment spécifier un fichier de configuration situé dans un autre emplacement tu devrais utiliser la méthode configure(File configFile)
par exemple:
Code:
new Configuration().configure(new File("D:/SERENIX/Projets/JAVA/hibernateTuto/src/hibernate.cfg.xml")).buildSessionFactory()


question : pour quoi tu n'utilises pas new Configuration().configure() tout court et laisse hibernate retrouver la configuration tout seul ? (hibernate.cfg.xml doit être présent dans le répertoire src de ton application)

_________________
everything should be made as simple as possible, but not simpler (AE)


Top
 Profile  
 
 Post subject: Re: Fichier de config introuvable (hibernate.cfg.xml not found)
PostPosted: Fri Apr 09, 2010 6:29 am 
Newbie

Joined: Fri Apr 09, 2010 4:31 am
Posts: 7
Bonjour

Merci de ta réaction.

J'ai essayé avec File cfgFile = new File("D:/SERENIX/Projets/JAVA/hibernateTuto/src/hibernate.cfg.xml");
return new Configuration().configure(cfgFile).buildSessionFactory(). Le fichier de configuration est reconnu mais maintenant ce sont les fichier de mapping qui ne sont pas retrouvé :
Initial SessionFactory creation failed.org.hibernate.MappingNotFoundException: resource: com/serenix/hibernate/tuto/xml/Bank.hbm.xml not found

Le chemin complet de ce fichier de mapping est D:/SERENIX/Projets/JAVA/hibernateTuto/src/com/serenix/hibernate/tuto/xml/Bank.hbm.xml
Je ne veux pas être amené à mettre les chemins complets en dur.

Les propriétés du projet dans JBuilder 2006 sont :
Chemin de sortie : D:/SERENIX/Projets/JAVA/hibernateTuto/classes
Repertoire de travail : D:/SERENIX/Projets/JAVA/hibernateTuto/

Dans l'onglet source, j'ai les chemins suivants : D:/SERENIX/Projets/JAVA/hibernateTuto/src et D:/SERENIX/Projets/JAVA/hibernateTuto/test avec respectivement les options défaut et test cochés.

Y a t il autre chose à faire pour que ce soit pris en compte dans le classPath.

Même avec return new Configuration().configure().buildSessionFactory(); et j' ai toujours le même message d'erreur relatif au fichier de configuration. C'est initialmement ce que j'avais écrit mais face à l'erreur j'ai précisé en dur le chemin ce qui n'est pas convenable pour moi.

Merci


Top
 Profile  
 
 Post subject: Re: Fichier de config introuvable (hibernate.cfg.xml not found)
PostPosted: Fri Apr 09, 2010 7:18 am 
Regular
Regular

Joined: Thu May 07, 2009 5:56 am
Posts: 94
Location: Toulouse, France
marckamga wrote:
Y a t il autre chose à faire pour que ce soit pris en compte dans le classPath.


si on regarde la console de ton application on voit -classpath "D:\SERENIX\Projets\JAVA\hibernateTuto\classes; cad que tous qui est en dessous de ce répertoire doit être pris en compte par le classloader de l'application. apparemment tes fichiers hibernate.cfg.xml et les hbm ne sont pas présent dans le répertoire de sortie classes. Il se peut que JBuilder ne met que les .class issus du répertoire src. je ne travaille pas avec jbuilder mais je pense qu'il doit y avoir un moyen de lui dire de mettre aussi les ressources *.xml dans le chemin de sortie. sinon, tu peux faire un tâche Ant qui recopie tes ressources vers le répertoire de sortie. d'ailleurs sans cela, même dans une application web comme dit dans ton post en english, hibernate ne pourra pas retrouver .hbm ni les hibernate.cfg.xml parce qu'ils ne sont simplement pas inclus dans le war final (JBuilder ne l'exportant pas)

jette un coup d'oeil à ceci:
Making JBuilder includes *.xml files in the source WAR file

1. Go to Project > Project Properties > Build section > Resource node.
2. Find "xml" in the Listbox and select them.
3. Check Copy radiobox. Now, appears Copy in the xml line.
4. Click in the Ok button to finalize.
(from http://edn.embarcadero.com/article/33355)

_________________
everything should be made as simple as possible, but not simpler (AE)


Top
 Profile  
 
 Post subject: Re: Fichier de config introuvable (hibernate.cfg.xml not found)
PostPosted: Fri Apr 09, 2010 9:39 am 
Newbie

Joined: Fri Apr 09, 2010 4:31 am
Posts: 7
Merci Hallmit pour tes réponses.

Avant cette dernière réponse, J'ai copié manuellement le fichier hibernate.cfg.xml dans D:\SERENIX\Projets\JAVA\hibernateTuto\classes et les fichiers xml dans
D:\SERENIX\Projets\JAVA\hibernateTuto\classes\com\serenix\hibernate\tuto\xml et tout a marché. Seulement Lors de certaines reconstructions de classes, ces fichiers sont supprimés.
Je vais essayer ta proposition de façon à ce que lors de la reconstruction, les fichiers xml soient inclus dans le classpath.


Top
 Profile  
 
 Post subject: Re: Fichier de config introuvable (hibernate.cfg.xml not found)
PostPosted: Fri Apr 09, 2010 10:19 am 
Newbie

Joined: Fri Apr 09, 2010 4:31 am
Posts: 7
Merci une fois de plus Hallmit.
Ta solution pour la copie dans le classpath a marché.
Le problème de fichier hibernate.cfg.xml et les fichiers de mapping est entièrement résolu.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.