3

我正在开发一个没有 Maven 或 Spring 的 GWT 应用程序,但我想使用 HikariCP 作为我的连接池,所以我从 Maven 的中央存储库下载了 HikariCP-2.2.4.jar 以及用于我的 postgresql 驱动程序的 pgjdbc-ng-0.3-complete.jar ; 最后,我将我的休眠库从 4.1 更新到了 4.3。

我在 hibernate.cfg.xml 上使用以下 HikariCP 属性

<property name="hibernate.connection.provider_class">com.zaxxer.hikari.hibernate.HikariConnectionProvider</property>
<property name="hibernate.hikari.dataSourceClassName">com.impossibl.postgres.jdbc.PGDataSource</property>
<property name="hibernate.hikari.dataSource.user">user</property>
<property name="hibernate.hikari.dataSource.password">pass</property>
<property name="hibernate.hikari.maximumPoolSize">10</property>
<property name="hibernate.hikari.dataSource.url">jdbc:postgresql://localhost:5432/db</property>

现在,当我启动应用程序时,它给了我下一个异常:

org.hibernate.HibernateException:java.lang.RuntimeException:java.beans.IntrospectionException:找不到方法:org.hibernate.boot.registry com.zaxxer.hikari.hibernate.HikariConnectionProvider.configure(HikariConnectionProvider.java:84) 的 setUrl .internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111) 在 org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234) 在 org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) ) 在 org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:94) 在 org.hibernate.boot 的 org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:260)。注册表.内部。StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) at org .hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887) 在 org.persistencias.HibernateSessionFactory.(HibernateSessionFactory.java:43) 在 org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845) 在 org.persistencias .BaseHibernateDAO.getSession(BaseHibernateDAO.java:14)java:234) 在 org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887) 在 org.hibernate.cfg.Configuration.buildSessionFactory 的 org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) (Configuration.java:1845) 在 org.persistencias.HibernateSessionFactory.(HibernateSessionFactory.java:43) 在 org.persistencias.BaseHibernateDAO.getSession(BaseHibernateDAO.java:14)java:234) 在 org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887) 在 org.hibernate.cfg.Configuration.buildSessionFactory 的 org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) (Configuration.java:1845) 在 org.persistencias.HibernateSessionFactory.(HibernateSessionFactory.java:43) 在 org.persistencias.BaseHibernateDAO.getSession(BaseHibernateDAO.java:14)43) 在 org.persistencias.BaseHibernateDAO.getSession(BaseHibernateDAO.java:14)43) 在 org.persistencias.BaseHibernateDAO.getSession(BaseHibernateDAO.java:14)

. . . 原因:java.lang.RuntimeException:java.beans.IntrospectionException:找不到方法:com.zaxxer.hikari.util.PropertyBeanSetter.setProperty 的 setUrl(PropertyBeanSetter.java:129)在 com.zaxxer.hikari.util.PropertyBeanSetter。 setTargetFromProperties(PropertyBeanSetter.java:58) 在 com.zaxxer.hikari.util.PoolUtilities.initializeDataSource(PoolUtilities.java:134) 在 com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:142) 在 com.zaxxer。 hikari.pool.HikariPool.(HikariPool.java:109) 在 com.zaxxer.hikari.HikariDataSource.(HikariDataSource.java:78) 在 com.zaxxer.hikari.hibernate.HikariConnectionProvider.configure(HikariConnectionProvider.java:80) .. . 49 更多原因:java.beans.IntrospectionException: Method not found: setUrl at java.beans.PropertyDescriptor.(PropertyDescriptor.java:

我已经在stackoverflow上搜索并用谷歌搜索,但到目前为止还没有找到任何东西,有人可以给我一个提示吗?

谢谢!

4

1 回答 1

4

pgjdbc-ng PGDataSource 没有用于 url 属性的设置器。URL 由 pgjdbc-ng 在内部“组合”。您需要使用各个属性设置 DataSource:

hibernate.hikari.dataSource.host=localhost hibernate.hikari.dataSource.port=5432 hibernate.hikari.dataSource.database=db

于 2014-11-14T00:38:29.250 回答