My project is like this:
/src/main/java
-thegamers
-app.java
-hibernateutil.java
can someone tell me where to put the hibernate.cfg.xml?
because I'm getting this error:
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
Place
hibernate.cfg.xml
undersrc/
folder or explicitly mention the path in code as:I'm using maven, and it didn't work for me until I put hibernate.cfg.xml in
src/main/resources
.At the root of your project:
/src
(at leat as default)How to know if
/src
is the sources dir?When you create a new Java class, it is contained in a package (normally it is called as the same name of the dir where it is created). So, in your class declarion you can see something like this:
In default IDE settings, the class should found under
/src/foo/MyClass.java
. As you can see, in this scenario/src
acts as root sources dir.It is the same for any other time you need a file visible on the classpath. The config file
hibernate.cfg.xml
needs to be on theclasspath
.This can be accomplished in different ways, depending on your project.
For a web-app WAR project (you are running the program in a Servlet container): placing it in
WEB-INF/classes
will work as files inWEB-INF/classes
are visible on the classpath when app is running in container.For a Maven-style project (not running the program in a Servlet container): placing it in
/src/main/resources/
will workFor otherwise, try in the
src/
directory.try to place it into "
src/main/resources
" directory.CMD+N/CTR+N while you are on Eclips, it will open a dialog-box there you have to dubbel click on the Hibernate folder. It will open a list of files with the XML extenuation. Select the cfg.xml and click on continue and when you are done! click on finish. Eclips will now add the Class name with the cfg.xml file and show it under the SRC folder. GB