![](/img/trans.png)
[英]ClassCastException HikariCPConnectionProvider cannot be cast to Hibernate ConnectionProvider
[英]hibernate3.LocalDataSourceConnectionProvider cannot be cast to ConnectionProvider
2.4發布,休眠3.3.2ga。 同時創建sessionfactory。 我遇到以下錯誤。 請給我一個解決方案
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="erpUSDataSource" />
<property name="annotatedClasses">
<list>
<value>com.bean.OrderDetailsVO</value>
<value>com.bean.OrderVO</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<!-- <prop key="hibernate.hbm2ddl.auto">update</prop> -->
<!-- <prop key="hibernate.use_outer_join">false</prop>
<prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.SingletonEhCacheProvider</prop>
<prop key="hibernate.hibernate.cache.use_query_cache">true</prop> -->
</props>
</property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
原因:org.hibernate.HibernateException:無法實例化org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator.instantiateExplicitConnectionProvider(ConnectionProviderInitiator.java:192)上的連接提供者[org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider] -core-4.2.0.Final-redhat-1.jar:4.2.0.Final-redhat-1]位於org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator.initiateService(ConnectionProviderInitiator.java:114)[休眠-core-4.2.0.Final-redhat-1.jar:4.2.0.Final-redhat-1]位於org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator.initiateService(ConnectionProviderInitiator.java:54)[休眠-core-4.2.0.Final-redhat-1.jar:4.2.0.Final-redhat-1],位於org.hibernate.service.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:69)[hibernate-core-4.2 .0.Final-redhat-1.jar:4.2.0.Final-redhat-1],位於org.hibernate.service.internal.AbstractServiceRegist ryImpl.createService(AbstractServiceRegistryImpl.java:176)[hibernate-core-4.2.0.Final-redhat-1.jar:4.2.0.Final-redhat-1] ... 90更多原因:java.lang.ClassCastException :無法將org.hibernate.service.jdbc.connections.spi.ConnectionProvider轉換為org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator.instantiateExplicitConnectionProvider(ConnectionProviderInitiator.java:189)上的org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider [hibernate-core-4.2.0.Final-redhat-1.jar:4.2.0.Final-redhat-1] ...還有94個
從stacktrace來看,您正在部署在較新的JBoss服務器上,該服務器默認情況下隨hibernate4一起提供,因為此類hibernate3類無法正常工作。
您必須將自己的hibernate庫包含在war文件中才能使用hibernate3(然后您可能必須解決其他一些類加載問題)。 或者您切換為使用Hibernate4。
使用hibernate4時,不再有HibernateTemplate
(自2006年發布hibernate 3.0.1以來,應將其視為已棄用!)。 如果您嚴重依賴HibernateTemplate
則可能必須更改一些代碼。
對於您的配置,只需切換到hibernate4類。
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="erpUSDataSource" />
<property name="annotatedClasses">
<list>
<value>com.bean.OrderDetailsVO</value>
<value>com.bean.OrderVO</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<!-- <prop key="hibernate.hbm2ddl.auto">update</prop> -->
<!-- <prop key="hibernate.use_outer_join">false</prop>
<prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.SingletonEhCacheProvider</prop>
<prop key="hibernate.hibernate.cache.use_query_cache">true</prop> -->
</props>
</property>
</bean>
所用的HibernateTransactionManager
也是如此,它也需要切換到hibernate4,只需更改軟件包即可。
有關Spring和hibernate集成的更多信息,請參閱參考指南 。
如前所述,沒有更多的HibernateTemplate
您應該使用普通的Hibernate API來實現存儲庫。 更多信息在這里 。
您應該已經具有正確的事務管理設置,但以防萬一,請參閱參考指南的這一部分 。
我添加了Hibernate jars 4.0.1.Final,其中包括Hibernate Entitymanagaer,Hibernate-commons批注,antlr 2.x,antlr-runtime2.x ..
我的猜測是由於不包括上述罐子,所以出現了問題。 我在罐子上方添加了我的問題,解決了
com.bean.OrderDetailsVO com.bean.OrderVO org.hibernate.dialect.SQLServer2008Dialect真實更新</ prop>->虛假</ prop> net.sf.ehcache.hibernate.SingletonEhCacheProvider </ prop>真實</ prop>- ->
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.