spring - java.lang.ClassNotFoundException : org. hibernate.cache.CacheProvider 异常同时集成spring和hiberate

标签 spring hibernate

我在尝试测试 spring 和 hibernate 集成时遇到以下异常。

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

应用程序上下文

<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> 

当我用谷歌搜索这个问题时,有人说我们应该使用 springframework.orm.hibernate4 而不是 springframework.orm.hibernate3。我这样做了。但我仍然遇到同样的异常。

有人可以帮我确定我在这里缺少什么。

谢谢

最佳答案

注意:org.hibernate.cache.Provider 在从 Hibernate 3 到 Hibernate 4 的更改中被删除。

如果你使用 hibernate 3,你可能会得到 java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider。 如果你改成hibernate 4,你不会得到那个,但你首先应该添加hibernate4.jarspring-orm.jar

关于spring - java.lang.ClassNotFoundException : org. hibernate.cache.CacheProvider 异常同时集成spring和hiberate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11978094/

相关文章:

java - Tomcat 使用 Spring 时出现 404 错误?

java - 在获取多行期间使用 spring-jdbctemplate 的 csv 输出

Hibernate 错误,可能与 DTD 声明有关

java - Spring MVC 前端和 EJB 后端中的 LazyInitializationException

java - RestTemplate SSL 握手失败 - 连接被丢弃

java - Apache Tomcat 执行具有相同启动时加载的 Servlet

sql - 在 Spring Boot 中创建原生 SQL 查询而不创建实体类

java - org.hibernate.MappingException : Could not determine type for: java. util.Map

java - wildfly 9.0.0 读写方法之间的类型不匹配

mysql - 使用 hibernate 和 c3p0 中断线程时的大延迟