Question

Mon projet est comme ceci:

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

quelqu'un peut-il me dire où mettre le 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
Était-ce utile?

La solution

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

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

  • Pour un web-app de la GUERRE projet (vous exécutez le programme dans un conteneur de Servlet):le placer dans WEB-INF/classes va travailler en tant que fichiers dans WEB-INF/classes sont visibles sur le chemin de la classe lorsque l'application s'exécute dans un conteneur.

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

  • Sinon, essayez de la src/ répertoire.

Autres conseils

Je suis l'aide de maven, et cela n'a pas fonctionné pour moi jusqu'à ce que j'ai mis hibernate.cfg.xml dans src/main/resources.

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

Comment savoir si /src est les sources dir?
Lorsque vous créez une nouvelle classe Java, elle est contenue dans un paquet (normalement, il est appelé comme le même nom que le répertoire où il est créé).Donc, dans votre classe declarion vous pouvez voir quelque chose comme ceci:

package foo;

class MyClass{

En IDE par défaut des paramètres, la classe devrait trouvé en vertu de /src/foo/MyClass.java.Comme vous pouvez le voir, dans ce scénario /src agit en tant que root sources dir.

Si ce n'est pas un projet Web, faites explicitement que celui-ci

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

J'espère que cela peut aider

@SIB a pointé un lien (site Web de Mkyong).Il est bien expliqué là-bas.

Le fichier est supposé aller à la racine de votre /src dir, tandis que /src n'est pas déployé, tout est construit, copié à WEB-INF/classes qui EST déployée.Hibernate a besoin de l' cfg.xml fichier dans le classpath de votre projet afin de charger ses paramètres de configuration, votre WEB-INF dir est pas dans votre classpath, donc , si vous faites de la mettre là, vous seriez cacher il veille prolongée et que ça ne marcherait pas.

Cette fil vous dira comment faire pour charger l'hibernate.cfg.xml à partir de tout autre chemin d'accès.

Si vous utilisez Eclipse, allez à Project -> Propriétés -> Chemin de construction Java -> Source.Vous pouvez ajouter le nouveau dossier où vous avez placé le fichier ou déplacez le fichier dans le dossier existant.

CMD + N / CTR + N Pendant que vous êtes sur Eclips, il ouvrira une boîte de dialogue là où vous avez à Dubbel Cliquez sur le dossier Hibernate. Il ouvrira une liste de fichiers avec l'atténuation XML. Sélectionnez le CFG.XML et cliquez sur Continuer et quand vous avez terminé!Cliquez sur Terminer.Eclips ajoutera maintenant le nom de la classe avec le fichier CFG.XML et le montrer sous le dossier SRC.GB

Place hibernate.cfg.xml en vertu de src/ dossier ou mentionner explicitement le chemin d'accès dans le code comme:

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

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top