Hibernate:PostgreSQL驱动程序问题

我知道已经有类似的问题,但是那里的答案并没有帮助我。因此,请介意查看我的特定问题吗?

我对Hibernate的使用还不是很熟练,并且在尝试使用Hibernate 4.3和PostgreSQL为本地数据库创建测试数据时遇到了一个问题。

我有另一个项目,我以完全相同的方式进行操作,并且在那里工作,因此我进行了完全相同的设置,但使用了另一个数据库,但是现在在我的当前项目中,我得到以下异常:

exception.DBException: Could not configure Hibernate!

at dao.BenutzerDAO.<init>(BenutzerDAO.java:48)

at export.ExportDBSchema.main(ExportDBSchema.java:16)

Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [org.postgresql.Driver]

at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:245)

at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.loadDriverIfPossible(DriverManagerConnectionProviderImpl.java:200)

at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildCreator(DriverManagerConnectionProviderImpl.java:156)

at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:95)

at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)

at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:260)

at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:94)

at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)

at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843)

at dao.BenutzerDAO.<init>(BenutzerDAO.java:45)

... 1 more

Caused by: java.lang.ClassNotFoundException: Could not load requested class : org.postgresql.Driver

at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.findClass(ClassLoaderServiceImpl.java:230)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:340)

at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:242)

... 15 more

我搜索了可能的解决方案,但没有一个对我有用:

-)在Manifest.mf中指定jar的类路径->不起作用-)将postgresql-9.4.1208.jre6.jar放在WEB-INF下的lib文件夹中->不起作用-)在以下位置指定hibernate.cfg.xml文件Configuration()。configure(); ->没有用

我使用Glassfish 4.1,并且存在org.postgres.Driver.class,所以为什么找不到它?

我的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.dialect">org.hibernate.dialect.PostgreSQLDialect</property>

<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>

<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/Testdb</property>

<property name="hibernate.connection.username">username</property>

<property name="hibernate.hbm2ddl.auto">create-drop</property>

<property name="hibernate.connection.password">password</property>

<mapping class="entity.Benutzer"/>

</session-factory>

</hibernate-configuration>

DAO类中发生异常的方法:

try {

if (sessionFactory == null) {

Configuration conf = new Configuration().configure();

StandardServiceRegistryBuilder builder

= new StandardServiceRegistryBuilder();

builder.applySettings(conf.getProperties());

sessionFactory = conf.buildSessionFactory(builder.build());

}

} catch (Throwable ex) {

throw new DBException("Could not configure Hibernate!", ex);

}

我会很感激每一个答案。

回答:

你近了!

您需要postgresql-<version>.jar直接将其放置在 *

<TOMCAT_ROOT>/lib

以上是 Hibernate:PostgreSQL驱动程序问题 的全部内容, 来源链接: utcz.com/qa/406672.html

回到顶部