Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'baseDao': Injection ofautowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public voidsy.dao.impl.BaseDaoImpl.setSessionFactory(org.hibernate.SessionFactory); nestedexception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' definedin class path resource [spring-hibernate.xml]: Invocation of init methodfailed; nested exception is java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()Z
atorg.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1120)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
atorg.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
atorg.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
atorg.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
atorg.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
atorg.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
atorg.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
atorg.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
atorg.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
atorg.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
atorg.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
atorg.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
atorg.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
atjava.util.concurrent.FutureTask.run(Unknown Source)
atjava.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
atjava.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
atjava.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire method: public voidsy.dao.impl.BaseDaoImpl.setSessionFactory(org.hibernate.SessionFactory); nestedexception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' definedin class path resource [spring-hibernate.xml]: Invocation of init methodfailed; nested exception is java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
atorg.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:601)
atorg.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
atorg.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
...22 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' definedin class path resource [spring-hibernate.xml]: Invocation of init methodfailed; nested exception is java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()Z
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1486)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
atorg.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
atorg.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:891)
atorg.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:834)
atorg.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:749)
atorg.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:558)
...24 more
Caused by:java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
atorg.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1868)
atorg.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:768)
atorg.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:687)
atorg.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3431)
atorg.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3385)
atorg.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1337)
atorg.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1727)
atorg.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1778)
atorg.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:242)
atorg.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:372)
atorg.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:357)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1545)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483)
...34 more
三月 06, 20167:35:46 下午org.apache.catalina.core.StandardContext listenerStart
严重: Exceptionsending context initialized event to listener instance of classorg.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'baseDao': Injection ofautowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public voidsy.dao.impl.BaseDaoImpl.setSessionFactory(org.hibernate.SessionFactory); nestedexception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' definedin class path resource [spring-hibernate.xml]: Invocation of init methodfailed; nested exception is java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()Z
atorg.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1120)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
atorg.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
atorg.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
atorg.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
atorg.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
atorg.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
atorg.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
atorg.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
atorg.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
atorg.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
atorg.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
atorg.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
atorg.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
atjava.util.concurrent.FutureTask.run(Unknown Source)
atjava.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
atjava.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
atjava.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire method: public voidsy.dao.impl.BaseDaoImpl.setSessionFactory(org.hibernate.SessionFactory); nestedexception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' definedin class path resource [spring-hibernate.xml]: Invocation of init methodfailed; nested exception is java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()Z
atorg.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:601)
atorg.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
atorg.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
...22 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' definedin class path resource [spring-hibernate.xml]: Invocation of init methodfailed; nested exception is java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1486)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
atorg.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
atorg.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:891)
atorg.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:834)
atorg.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:749)
atorg.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:558)
...24 more
Caused by:java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
atorg.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1868)
atorg.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:768)
atorg.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:687)
atorg.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3431)
atorg.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3385)
atorg.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1337)
atorg.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1727)
atorg.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1778)
atorg.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:242)
atorg.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:372)
atorg.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:357)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1545)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483)
... 34 more
解决方法:
在hibernate3.5之前,使用Annotation通常会引以下几个jar包:hibernate Annotaion 的包:hibernate-annotations.jar持久化:ejb3-persistence.jar
javax.persistence.OneToMany.class在ejb3-persistence.jar中。
Hibernate3.5以及之后的版本使用Annotation只需加hibernate-jpa-2.0-api-1.0.0.Final.jar
javax.persistence.OneToMany.class在hibernate-jpa-2.0-api-1.0.0.Final.jar所以如果hibernate-jpa-2.0-api-1.0.0.Final.jar 又加了ejb3-persistence.jar,就会出现此异常