spring4整合hibernate5報錯解決
阿新 • • 發佈:2019-01-28
**1、**org.springframework.web.context.support.XmlWebApplicationContext.refresh:544
- Exception encountered during context initialization
- cancelling refresh attempt org.springframework.beans.factory.BeanCreationException:
- Error creating bean with name 'sessionFactory' defined in class path resource
config/hbmSessionFactory.xml]: Invocation of init method failed; nested exception is
ava.lang.NoSuchMethodError: org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.<init>
Lorg/hibernate/boot/spi/MetadataBuildingOptions;)V at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.
initializeBean(AbstractAutowireCapableBeanFactory.java:1578 )...
該問題是添加了對<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.6-Final</version>的依賴
在maven中去對hibernate-annotations的依賴就可以解決該問題
**2、**Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in ServletContext resource [config/hbmSessionFactory.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/engine/SessionFactoryImplementor
解決:
<tx:annotation-driven transaction -manager="transactionManager"/>
<bean id="transactionManager"
class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
**3、**com.opensymphony.xwork2.util.LocalizedTextUtil.debug:84
- Base class org.apache.catalina.loader.WebappClassLoader doesn't contain 'resourceEntries'
field, trying with parent!java.lang.NoSuchFieldException: resourceEntries at
java.lang.Class.getDeclaredField(Class.java:2070)
問題是tomcat得原因:tomcat8中沒有該欄位,改用tomcat7就可以。
**4、**Cannot run program "/Applications/tomcat-7.0.64/bin/catalina.sh": error=13, Permission denied
該檔案沒有執行的許可權,新增執行的許可權即可:
chmod a+x /Applications/tomcat-7.0.64/bin/catalina.sh
**5、**Invocation of init method failed; nested exception is org.hibernate.boot.
InvalidMappingException: Could not parse mapping document: null
問題在於hibernate mapping的映射出錯,必須有id欄位,模型中沒有id欄位新增就可以解決問題
**6** nested exception is java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
問題由於包衝突引起:
一個包是
<dependency> <!--hibernate core中包含了persistence-jpa 從而導致註解衝突-->
<groupId>org.hibernate</groupId>
<artifactId>ejb3-persistence</artifactId>
<version>1.0.2.GA</version>
</dependency>
一個包hibernate-core依賴的persistence-jpa
解決:去掉ejb3-persistence