为什么hikaricp给我找不到方法:setUrl在启动时?

时间:2014-11-13 15:26:03

标签: hibernate maven jetty hikaricp

我正在开发一个没有Maven和Spring的GWT应用程序,但我想使用HikariCP作为我的连接池,所以我从Maven的Central Repository下载了HikariCP-2.2.4.jar以及pgjdbc-ng-0.3-我的postgresql驱动程序的complete.jar;最后我将我的hibernate库从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:找不到方法:setUrl       在com.zaxxer.hikari.hibernate.HikariConnectionProvider.configure(HikariConnectionProvider.java:84)       at org.hibernate.boot.registry.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.buildJdbcConnectionAccess(JdbcServicesImpl.java:260)       在org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:94)       at org.hibernate.boot.registry.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.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887)       在org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845)       在org.persistencias.HibernateSessionFactory。(HibernateSessionFactory.java:43)       在org.persistencias.BaseHibernateDAO.getSession(BaseHibernateDAO.java:14)

     

。   。   。   引起:java.lang.RuntimeException:java.beans.IntrospectionException:找不到方法:setUrl       在com.zaxxer.hikari.util.PropertyBeanSetter.setProperty(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:找不到方法:setUrl       在java.beans.PropertyDescriptor。(PropertyDescriptor.java:110)       在com.zaxxer.hikari.util.PropertyBeanSetter.setProperty(PropertyBeanSetter.java:120)       ......还有55个

我在这里搜索了stackoverflow并用google搜索但到目前为止还没有找到任何内容,有人能给我一个提示吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

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

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