Excepción NoClassDefFoundError para CacheProvider

Soy algo nuevo en Spring e hibernate, así que estoy tratando de implementar alguna aplicación web simple basada en Spring 3 + hibernate 4 mientras comienzo tomcat. Tengo esta excepción:

java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) at java.lang.Class.getDeclaredMethods(Class.java:1791) ... Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) 

Descubrí que esta clase estaba en hibernate-core para hibernate 3 pero no la encontré en hibernate 4.

La parte de mi context.xml para la persistencia:

              org.hibernate.dialect.Oracle10gDialect    

Ayúdame a descubrir por qué está intentando cargar CacheProvider porque no tengo ninguna configuración para eso en context.xml y qué jar debo agregar a mi proyecto. ¡Gracias!

Cambia tu AnnotationSessionFactoryBean a org.springframework.orm.hibernate4.LocalSessionFactoryBean (Hibernate 4) y estarás listo para continuar. El AnnotationSessionFactoryBean se reemplazó con el LocalSessionFactoryBean, ya que ahora analiza el camino de clase.

Esto podría deberse a cambios introducidos en Hibernate 4 que no son compatibles con el soporte de Spring para Hibernate. Este problema se refiere a agregar paquetes por separado para admitir hibernación 4. Necesitarás la spring 3.1 para esto. La otra opción es mantener el hibernate 3 si no necesita ninguna característica específica introducida en 4.

la actualización de AnnotationSessionFactoryBean para hibernate4 funciona perfectamente. También asegúrese de que su transactionManager también apunte a hibernate4,

      org.hibernate.dialect.MySQLDialect       

Un problema realmente simple que causará el mismo error es simplemente tener una falta de coincidencia entre la versión de hibernación en el pom (4. algo) y la versión especificada en la configuración de spring.