localcontainerentitymanagerfactorybean java hibernate spring jpa

java - localcontainerentitymanagerfactorybean - spring jpa hibernate



¿Cómo puedo resolver java.lang.ClassNotFoundException: org.hibernate.util.DTDEntityResolver al usar Spring 3.1 con Hibernate 4.0.1? (4)

Recientemente me actualicé a Hibernate 4.0.1.Final y estoy recibiendo el siguiente error en el inicio del contexto:

Caused by: java.lang.NoClassDefFoundError: org/hibernate/util/DTDEntityResolver at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:791) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2823) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1655) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533) at org.hibernate.cfg.Configuration.reset(Configuration.java:322) at org.hibernate.cfg.Configuration.<init>(Configuration.java:261) at org.hibernate.cfg.Configuration.<init>(Configuration.java:265) at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:150) at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:71) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:257) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) ... 65 more Caused by: java.lang.ClassNotFoundException: org.hibernate.util.DTDEntityResolver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)

Mi configuración es la siguiente:

<!-- Holding Properties for hibernate --> <context:property-placeholder location="classpath:hibernate.properties"/> <!-- Configure annotated beans --> <context:annotation-config /> <context:component-scan base-package="com.mypackage" /> <!-- Drives transactions using local JPA APIs --> <tx:annotation-driven transaction-manager="transactionManager"/> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" p:entityManagerFactory-ref="entityManagerFactory"/> <!-- Creates a EntityManagerFactory for use with the Hibernate JPA provider --> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" p:dataSource-ref="dataSource" p:packagesToScan="com.mypackage.entity" p:jpaVendorAdapter-ref="jpaAdapter"/> <bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" p:showSql="true" p:generateDdl="false" p:database="MYSQL" p:databasePlatform="org.hibernate.dialect.MySQL5InnoDBDialect" /> <!-- Deploys datasource--> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" p:driverClassName="com.mysql.jdbc.Driver" p:url="jdbc:mysql://localhost:${mysql.port}/?zeroDateTimeBehavior=convertToNull" p:username="bla" p:password="bla123"/> <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

Algunas de las dependencias son:

<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-annotations</artifactId> <version>3.5.6-Final</version> <exclusions> <exclusion> <groupId>org.hibernate</groupId> <artifactId>ejb3-persistence</artifactId> </exclusion> <exclusion> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${hibernate.version}</version> <exclusions> <exclusion> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> </exclusion> <exclusion> <groupId>jboss</groupId> <artifactId>javassist</artifactId> </exclusion> <exclusion> <groupId>org.hibernate</groupId> <artifactId>hibernate-annotations</artifactId> </exclusion> </exclusions> </dependency> <properties> <hibernate.version>4.0.1.Final</hibernate.version> </properties>

Y la versión de primavera de: 3.1.0.RELEASE

Estoy asumiendo que algo está tratando de leer un archivo xml. No hay configuraciones hibernate xml para la hibernación que no sea el archivo de propiedades. Persistence.xml no existe en la configuración actual. ¿Por qué o quién busca una clase que no existe en hibernate 4.0.1?

¡Cualquier ayuda sería muy apreciada!


Agregue esta dependencia a su pom.xml

<dependency> <groupId>org.hibernate</groupId> <artifactId>tck-utils-api</artifactId> <version>0.9.1</version> </dependency>


Me enfrenté al mismo problema, después de eliminar las dependencias de la anotación de hibernación, pude ejecutar mi código con éxito.


Según la docs.jboss.org/hibernate/annotations/3.5/reference/en/… : *

Hibernate 3.5 y posteriores contiene anotaciones de Hibernate.

Debe eliminar la dependencia de hibernate-annotations y eliminar las hibernate-entitymanager dependencia hibernate-entitymanager . En general, no debe mezclar versiones de paquetes dependientes.

* y el comentario de JB Nizet.


Tuve el mismo problema ahora está bien con mis dependencias.

<properties> <spring.version>4.0.5.RELEASE</spring.version> <junit.version>4.11</junit.version> <jdk.version>1.6</jdk.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- Spring dependencies --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <!-- Servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> <!-- JSTL --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- Apache Commons Upload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.2</version> </dependency> <!-- Apache Commons Upload --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>1.3.2</version> </dependency> <!-- MYSQL dependency --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <!-- Hibernate --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.3.5.Final</version> </dependency> <!-- If using JPA (2), add: --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.5.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.5.6</version> </dependency> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.18.1-GA</version> </dependency> </dependencies>