您的位置:首页 > 其它

SSH/JPA整合错误总结

2013-09-11 16:00 281 查看
错误1:

org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'entityManagerFactory' defined in
class path resource [applicationContext.xml]: Invocation of init
method failed; nested exception is
java.lang.NoSuchMethodError:

。。。。。。。。。。。。。。。。。。。。。

Caused by: java.lang.NoSuchMethodError:
javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;

at
org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:632)

at
org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory

解决错误trace主要是看caused
by这个错误的原因是:Ljavax/persistence/ValidationMode的错误信息,无法解决,看了spring官网的社区才知道这是hibernate的bug,这是因为使用的是新版本的
Hibernate(这里我使用的是 Hibernate
3.6),跟javaee.jar里面的jpa接口冲突了。解决方法是:移除MyEclipse自带的javaEE包,自己新建user
libraries,加入javaEE中的jsf-api.jar jsf-impl.jar jstl-1.2.jar
包,再加入tomcat中的servlet-api.jar,其实就是将javaEE中的javaee.jar用tomcat中的servlet-api.jar换掉,这样这个问题就解决了。



错误2:

org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'entityManagerFactory' defined in
class path resource [applicationContext.xml]: Invocation of init
method failed; nested exception is java.lang.NoClassDefFoundError:
org/hibernate/annotations/common/reflection/MetadataProvider



Caused by:
java.lang.NoClassDefFoundError:
org/hibernate/annotations/common/reflection/MetadataProvider

at
org.hibernate.ejb.Ejb3Configuration.(Ejb3Configuration.java:150)

at
org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)

这个我看了一下org/hibernate/annotations/common/reflection,于是导入hibernate-annotations就好了,当然还有hibernate-commons-annotations
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: