web-dev-qa-db-fra.com

Où placer hibernate.cfg.xml?

Mon projet est comme ça:

/src/main/Java
     -thegamers
         -app.Java
         -hibernateutil.Java

quelqu'un peut-il me dire où mettre le fichier hibernate.cfg.xml?

parce que je reçois cette erreur:

Initial SessionFactory creation failed.org.hibernate.HibernateException: hibernate.cfg.xml not found
Exception in thread "main" Java.lang.ExceptionInInitializerError
    at thegamers.HibernateUtil.buildSessionFactory(HibernateUtil.Java:17)
    at thegamers.HibernateUtil.<clinit>(HibernateUtil.Java:8)
    at thegamers.App.main(App.Java:15)
Caused by: org.hibernate.HibernateException: hibernate.cfg.xml not found
    at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.Java:170)
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.Java:2149)
    at org.hibernate.cfg.Configuration.configure(Configuration.Java:2130)
    at thegamers.HibernateUtil.buildSessionFactory(HibernateUtil.Java:13)
    ... 2 more
39
Noor

Le fichier de configuration hibernate.cfg.xml doit être sur la classpath.

Cela peut être accompli de différentes manières, en fonction de votre projet.

  • Pour un web-app WAR projet (vous exécutez le programme dans un conteneur Servlet): Le placer dans WEB-INF/classes fonctionnera comme les fichiers dans WEB-INF/classes sont visibles sur le chemin de classe lorsque l'application est exécutée dans un conteneur.

  • Pour un projet de style Maven - (ne pas exécuter le programme dans un conteneur Servlet): le placer dans /src/main/resources/ fonctionnera

  • Sinon, essayez dans le répertoire src/.

20
mmcrae

J'utilise maven, et cela n'a pas fonctionné jusqu'à ce que je mette hibernate.cfg.xml dans src/main/resources.

14
ksnortum

À la racine de votre projet: /src (au plus tard par défaut)

Comment savoir si /src est le répertoire sources?
Lorsque vous créez une nouvelle classe Java, celle-ci est contenue dans un paquet (normalement, elle porte le même nom que le répertoire où elle est créée). Donc, dans votre déclaration de classe, vous pouvez voir quelque chose comme ceci: 

package foo;

class MyClass{

Dans les paramètres par défaut IDE, la classe devrait se trouver sous /src/foo/MyClass.Java. Comme vous pouvez le constater, dans ce scénario, /src se comporte comme un répertoire source racine.

11
manix

si ce n'est pas un projet web, alors explicitement comme ça

new Configuration().configure( "pth/to/hibernate.cfg.xml").buildsessionfactory()

J'espère que cela peut aider

@SiB a indiqué un lien (site Web de mkyong). C'est bien expliqué là.

4
Elbek

Le fichier est supposé aller à la racine de votre répertoire /src, alors que /src n'est pas déployé, tout ce qu'il contient est construit/copié dans le WEB-INF/classes que IS a déployé. Hibernate a besoin du fichier cfg.xml dans la classpath de votre projet pour charger ses paramètres de configuration. Votre répertoire WEB-INF ne se trouve pas dans votre classpath. Ainsi, si vous le placiez là, vous le verriez caché par Hibernate et ça ne marcherait pas.

Ce thread vous indiquerait comment charger le fichier hibernate.cfg.xml à partir d’un chemin différent.

2
SiB

Si vous utilisez Eclipse, accédez à Projet -> Propriétés -> Chemin de construction Java -> Source. Vous pouvez ajouter le nouveau dossier dans lequel vous avez placé le fichier ou déplacer le fichier dans le dossier existant.

1
Dino Tw

essayez de le placer dans le répertoire "src/main/resources". 

0
Matteo Pipitone

Placez hibernate.cfg.xml dans le dossier src/ ou mentionnez explicitement le chemin dans le code sous la forme:

new Configuration.configure("path of hibernate.cfg.xml").buildsessionfactory()
0
Arunprasad

CMD + N/CTR + N alors que vous êtes sur Eclips, une boîte de dialogue s’ouvrira, vous devrez cliquer deux fois sur le dossier Hibernate . Cela ouvrira une liste de fichiers avec l’extension XML . Sélectionnez cfg.xml et cliquez sur continuer et quand vous avez terminé! cliquez sur terminer. Eclips va maintenant ajouter le nom de la classe avec le fichier cfg.xml et l'afficher dans le dossier SRC. GB

0
bariyaw