【发布时间】:2014-06-16 12:15:46
【问题描述】:
我刚刚开始学习 Hibernate。为此,我编写了一个简单的 Java 程序。 但是当我尝试执行程序时,我遇到了以下异常。
Apr 30, 2014 1:54:18 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
Apr 30, 2014 1:54:18 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.5.Final}
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.hibernate.cfg.Configuration.reset(Configuration.java:324)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:289)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:293)
at com.hiber.main.Main.main(Main.java:19)
Caused by: java.lang.NullPointerException
at org.hibernate.internal.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170)
at org.hibernate.cfg.Environment.<clinit>(Environment.java:221)
... 4 more
以下是程序:
package com.hiber.main;
import javax.naming.NamingException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
public class Main {
public static void main(String[] args) throws NamingException {
//SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(new StandardServiceRegistryBuilder().build());
ServiceRegistry serviceRegistry;
SessionFactory sessionFactory;
Configuration configuration = new Configuration();
configuration.configure("/com/hiber/main/hibernate.cfg.xml");
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
Session sess = sessionFactory.getCurrentSession();
sessionFactory.openSession();
sess.beginTransaction();
Test1 t = new Test1();
t.setTest1Ind(1);
t.setName("name");
t.setPassword("abcd1234");
sess.saveOrUpdate(t);
sess.getTransaction().commit();
sess.close();
}
}
下面是cfg xml:
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">root1234</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.default_schema">test</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="current_session_context_class">thread</property>
</session-factory>
</hibernate-configuration>
我已经包含了所有依赖项。希望我没有错过任何东西。 目前无法添加图片。
请任何人查看代码并考虑一下这里可能出现的问题。 提前致谢。
【问题讨论】:
-
您说
cfg xml,但在您的代码中将其引用为hibernate.cfg.xml。您是否已解压缩生成的 JAR 并检查该文件确实是您的代码所说的位置?
标签: java hibernate jakarta-ee nhibernate-mapping