java.lang.ClassNotFoundException:整合spring和hibernate时的org.hibernate.cache.CacheProvider异常 [英] java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider exception while integrating spring and hiberate
问题描述
原因是:java。 lang.ClassNotFoundException:org.hibernate.cache.CacheProvider $ b $ java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)
at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355 )java.security.AccessController.doPrivileged处的
(Native方法)$ java.net.URLClassLoader.findClass处的
(URLClassLoader.java:354)$ java.util.ClassLoader.loadClass处的
(ClassLoader .java:423)
at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
。 .. 18 more
application-context
< beans xmlns =http://www.springframework.org/schema/beans
xmlns:context =http://www.springframework.org/schema / context
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =
http://www.springf ramework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd\">
< context:annotation-config />
<! - 数据源bean - >
< bean id =dataSourceclass =org.apache.commons.dbcp.BasicDataSource>
< property name =urlvalue =jdbc:mysql:// localhost:3306 / sterlingschema/>
< property name =driverClassNamevalue =com.mysql.jdbc.Driver/>
< property name =usernamevalue =root/>
< property name =passwordvalue =root/>
< / bean>
<! - Hibernate模板会话工厂bean - >
< bean id =sessionFactoryclass =org.springframework.orm.hibernate4.LocalSessionFactoryBean>
< property name =dataSourceref =dataSource/>
< property name =hibernateProperties>
<道具>
< prop key =hibernate.dialect> org.hibernate.dialect.MySQLDialect< / prop>
< prop key =show_sql> true< / prop>
< prop key =hibernate.hbm2ddl.auto> update< / prop>
< /道具>
< / property>
< property name =mappingResources>
< list>
<值> /org/droidaceapps/domain/users.hbm.xml< /值>
< / list>
< / property>
< / bean>
<! - Hibernate模板bean - >
< bean id =hibernateTemplateclass =org.springframework.orm.hibernate4.HibernateTransactionManager>
< property name =sessionFactoryref =sessionFactory>< / property>
< / bean>
<! - DAO beans - >
< bean id =userDAOclass =org.droidaceapps.dao.UserDAOImpl>
< property name =hibernateTemplateref =hibernateTemplate/>
< / bean>
<! - 服务bean - >
< bean id =userServiceclass =org.droidaceapps.services.UserServiceImpl>
< property name =userDAOref =userDAO/>
< / bean>
当我搜索这个问题时有人说我们应该使用springframework.orm.hibernate4而不是springframework.orm.hibernate3。我做到了。但是我仍然得到同样的例外。
有人可以帮助我确定我在这里错过了什么。
Thanks
注意: org.hibernate.cache.Provider在从Hibernate 3到Hibernate 4 。如果你使用hibernate 3,你可能会得到 java.lang.ClassNotFoundException:org.hibernate.cache.CacheProvider
。 / code>。
如果您更改为hibernate 4,您不会得到这些,但您首先应该添加 hibernate4.jar
和 spring-orm.jar
。
I am getting the below exception when I am trying to test the spring and hibernate integration.
Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 18 more
application-context
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config/>
<!-- Datasource beans -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="url" value="jdbc:mysql://localhost:3306/sterlingschema" />
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
<!-- Hibernate Template session factory bean -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>/org/droidaceapps/domain/users.hbm.xml</value>
</list>
</property>
</bean>
<!-- Hibernate template beans -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- DAO beans -->
<bean id="userDAO" class="org.droidaceapps.dao.UserDAOImpl">
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>
<!-- Service beans -->
<bean id="userService" class="org.droidaceapps.services.UserServiceImpl">
<property name="userDAO" ref="userDAO" />
</bean>
When I googled on this problem some said that we should be using springframework.orm.hibernate4 instead of springframework.orm.hibernate3. I did that. But still I am getting the same exception.
Can someone help me in Identifying what am I missing here.
Thanks
Note : org.hibernate.cache.Provider was removed in the change from Hibernate 3 to Hibernate 4.
If you use hibernate 3, you may get the java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider
.
If you change to hibernate 4, you will not get that, but you firstly should add hibernate4.jar
and spring-orm.jar
.
这篇关于java.lang.ClassNotFoundException:整合spring和hibernate时的org.hibernate.cache.CacheProvider异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!