Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hibernate exception hibernate.cfg.xml not found

I'm trying to start project with Hibernate and Maven.

I got such exception:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" 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:2176)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2157)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2137)
    at FirstHibernate.com.myhib.CRUDS.CrudsOps.main(CrudsOps.java:15)

Here is the screenshot of my project structure, (hibernate.cfg.xml is in src/): http://imageshack.us/photo/my-images/692/screenshotxba.jpg/

CrudsOps.java

package FirstHibernate.com.myhib.CRUDS;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class CrudsOps {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        SessionFactory sf = new Configuration().configure().buildSessionFactory();
        System.out.println("Cfg and hbm files loaded succesfully");
        Session session = sf.openSession();
        session.beginTransaction();
        System.out.println("Transaction began");

    }

}

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>FirstHibernate</groupId>
  <artifactId>com.myhib</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>com.myhib Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.6.8.Final</version>
    </dependency>
    <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.1-901.jdbc4</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>4.2.0.Final</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>com.myhib</finalName>
    <resources>
        <resource>
            <filtering>true</filtering>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
  </build>
</project>

What could be a source of that exception?

like image 264
devger Avatar asked Mar 06 '13 21:03

devger


2 Answers

As @JBNizet said, your hibernate.cfg.xml should be in src/main/resources. In src, it won't be added to your classpath for runtime.

If you are running your project within Eclipse, don't forget in the project preferences in the build path configuration to check that the src/main/resources is not excluded from your class path and is indeed a source folder.

like image 142
benzonico Avatar answered Oct 04 '22 03:10

benzonico


The file should be in the runtime classpath. Maven copies to the target/classes folder the resources that are under src/main/resources. So your config file should be there.

That said, you don't show the code which loads the file, so there might be other problems.

like image 42
JB Nizet Avatar answered Oct 04 '22 04:10

JB Nizet