【发布时间】:2014-10-16 10:31:11
【问题描述】:
我使用 Hibernate 创建了一个简单的类示例,但出现以下错误:
Initial SessionFactory creation failed. java.lang.ExceptionInInitializerError
java.lang.ExceptionInInitializerError
at org.hibernate.cfg.Configuration.reset(Configuration.java:249)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:216)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:220)
at it.univaq.mwt.tplabs0.Test.main(Test.java:14)
Caused by: java.lang.NullPointerException
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:167)
at org.hibernate.cfg.Environment.<clinit>(Environment.java:585)
... 4 more
Exception in thread "main" java.lang.NullPointerException
at it.univaq.mwt.tplabs0.Test.main(Test.java:20)
我的测试课:
package it.univaq.mwt.tplabs0;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Test {
public static void main(String[] args) {
SessionFactory sessionFactory = null;
try {
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed. " + ex);
ex.printStackTrace();
}
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
System.out.println("Creating element");
Element el = new Element("prova", 1);
session.save(el);
System.out.println("Committing Tx");
session.getTransaction().commit();
System.out.println("Closing Session");
if (session.isOpen())
session.close();
}
}
我的 Hibernate 配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="">
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.password">master</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:XE</property>
<property name="hibernate.connection.username">master</property>
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
<property name="hbm2ddl.auto">create</property>
<property name="current_session_context_class">thread</property>
<mapping class="it.univaq.mwt.tplabs0.Element" resource="it/univaq/mwt/tplabs0/Element.hbm.xml"/>
</session-factory>
</hibernate-configuration>
我的图书馆:
- antlr-2.7.6.jar
- asm.jar
- asm-attrs.jar
- c3p0-0.9.1.jar
- cglib-2.2.jar
- commons-collections-3.1.jar
- commons-logging-1.0.4.jar
- concurrent-1.3.2.jar
- connector.jar
- dom4j-1.6.1.jar
- ehcache-1.2.3.jar
- hibernate3.jar
- jaas.jar
- javassist.jar
- jboss-cache.jar
- jboss-common.jar
- jboss-jmx.jar
- jboss-system.jar
- jdbc2_0-stdext.jar
- jgroups-2.2.8.jar
- jta.jar
- log4j-1.2.15.jar
- oscache-2.1.jar
- proxool-0.8.3.jar
- swarmcache-1.0rc2.jar
- slf4j-api-1.7.7.jar
- slf4j-log4j12-1.7.7.jar
启动这个简单的执行我从上面得到错误。我使用的数据库是 Oracle 11g。
发生了什么?
【问题讨论】:
-
你的 SessionFactory 对象没有被创建
-
你在使用 Eclipse IDE 吗?