由于org.Hibernate.internal.util.ConfigHelper.getResourceAsStream上的java.lang.NullPointerException,Hibernate 4.3.5会话工厂创建失败
我试图创建一个基本的HibernateJava应用程序来简单地显示现有的表数据。我被困在创建SessionFactory对象的第一步。下面是错误 这个问题与这里提到的类似。 我的Exclipse项目结构如下由于org.Hibernate.internal.util.ConfigHelper.getResourceAsStream上的java.lang.NullPointerException,Hibernate 4.3.5会话工厂创建失败,hibernate,Hibernate,我试图创建一个基本的HibernateJava应用程序来简单地显示现有的表数据。我被困在创建SessionFactory对象的第一步。下面是错误 这个问题与这里提到的类似。 我的Exclipse项目结构如下 Hibernatetest (Project folder) src com.test -Package City.java -POJO HelloHibernate.ja
Hibernatetest (Project folder)
src
com.test -Package
City.java -POJO
HelloHibernate.java -DAO
HibernateUtil.java -Helper Class
City.hbm.xml -Mapping
hibernate.cfg.xml -config
配置文件位于包的外部
下面是我的hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!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">root</property>
<property name="hibernate.connection.url">jdbc:mysql://192.168.0.2:3306/world</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.default_schema">world</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="com/test/City.hbm.xml"/>
</session-factory>
</hibernate-configuration>
下面是我使用Hibernate 4.3.5文档创建的HibernateUtil.java
package com.test;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
return new Configuration().configure().buildSessionFactory(
new StandardServiceRegistryBuilder().build() );
}
catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
System.err.println(ex.getCause());
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
下面是我的主要应用类
package com.test;
import java.util.List;
import com.test.City;
import org.hibernate.Session;
import com.test.HibernateUtil;
public class HelloHibernate {
public static void main(String[] args) {
HelloHibernate dao = new HelloHibernate();
List<City> cities = dao.getCities();
for( City city : cities){
System.out.println(city.getName());
}
}
public List<City> getCities(){
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
@SuppressWarnings("unchecked")
List<City> cities = session.createQuery("from city").list();
session.getTransaction().commit();
session.close();
return cities;
}
}
package.com.test;
导入java.util.List;
导入com.test.City;
导入org.hibernate.Session;
导入com.test.HibernateUtil;
公共级HelloHibernate{
公共静态void main(字符串[]args){
HelloHibernate dao=新的HelloHibernate();
List cities=dao.getCities();
用于(城市:城市){
System.out.println(city.getName());
}
}
公共列表(城市){
会话会话=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
@抑制警告(“未选中”)
List cities=session.createQuery(“来自城市”).List();
session.getTransaction().commit();
session.close();
回归城市;
}
}
我只是尝试将此java文件作为java应用程序运行。有时会出现此异常
Caused by: java.lang.NullPointerException
at org.hibernate.internal.util.ConfigHelper.getResourceAsStream
(ConfigHelper.java:170)
at org.hibernate.cfg.Environment.<clinit>(Environment.java:221)
哇,真糟糕,谢谢。我也遇到了同样的问题,并按照您的指示解决了。然而,仍然存在的问题是,为什么在类路径中添加用户库时会生成异常?
package com.test;
// Generated May 18, 2014 5:26:21 PM by Hibernate Tools 4.0.0
/**
* City generated by hbm2java
*/
public class City implements java.io.Serializable {
private static final long serialVersionUID = 6056273769318803807L;
private int id;
private String name;
private String countryCode;
private String district;
private int population;
public City() {
}
public City(String name, String countryCode, String district, int population) {
this.name = name;
this.countryCode = countryCode;
this.district = district;
this.population = population;
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getCountryCode() {
return this.countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public String getDistrict() {
return this.district;
}
public void setDistrict(String district) {
this.district = district;
}
public int getPopulation() {
return this.population;
}
public void setPopulation(int population) {
this.population = population;
}
}
package com.test;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
return new Configuration().configure().buildSessionFactory(
new StandardServiceRegistryBuilder().build() );
}
catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
System.err.println(ex.getCause());
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
package com.test;
import java.util.List;
import com.test.City;
import org.hibernate.Session;
import com.test.HibernateUtil;
public class HelloHibernate {
public static void main(String[] args) {
HelloHibernate dao = new HelloHibernate();
List<City> cities = dao.getCities();
for( City city : cities){
System.out.println(city.getName());
}
}
public List<City> getCities(){
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
@SuppressWarnings("unchecked")
List<City> cities = session.createQuery("from city").list();
session.getTransaction().commit();
session.close();
return cities;
}
}
Caused by: java.lang.NullPointerException
at org.hibernate.internal.util.ConfigHelper.getResourceAsStream
(ConfigHelper.java:170)
at org.hibernate.cfg.Environment.<clinit>(Environment.java:221)
right click on project -> Build path -> configure build path->
add external jars->browse to the jars location and select all required jars.
Uncheck the System Library as shown below and rebuild the source.