1. 程式人生 > >spring4整合hibernate5報錯解決

spring4整合hibernate5報錯解決

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