0 0

Spring 的annotation 如何正确地 整合hibernate的xml配置?25

1. "applicationContext.xml"

 

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

http://www.springframework.org/schema/tx 

http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

 

<context:component-scan base-package="org.test" />

 

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations">

<value>classpath:jdbc.properties</value>

</property>

</bean>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

   <property name="driverClassName" value="${jdbc.driverClassName}"/>

   <property name="url" value="${jdbc.url}"/>

   <property name="username" value="${jdbc.username}"/>

   <property name="password" value="${jdbc.password}"/>

 </bean>

 

<bean id="sessionFactory" 

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

 

<property name="dataSource" ref="dataSource" />

<property name="mappingDirectoryLocations">

      <list>

        <value>WEB-INF/maps</value>

      </list>

    </property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">

org.hibernate.dialect.MySQL5InnoDBDialect

</prop>

<prop key="hibernate.show_sql">true</prop>

<prop key="hibernate.hbm2ddl.auto">update</prop>

</props>

</property>

</bean>

 

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">

<property name="sessionFactory" ref="sessionFactory"></property>

</bean>

 

<!-- 定义了一个名为: myHibTxManager 的 Hibernate事务管理器 -->

<bean id="myHibTxManager"

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory" ref="sessionFactory" />

</bean>

 

<aop:config>

<!--为expression ,应用Hibernate事务管理器-->

<aop:pointcut id="serviceMethods" expression="execution(* org.test.service.*.*(..))" />

<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethods" />

</aop:config>

 

<tx:advice id="txAdvice" transaction-manager="myHibTxManager">

<tx:attributes>

<tx:method name="load*" propagation="SUPPORTS" read-only="true" />

<tx:method name="get*" propagation="SUPPORTS" read-only="true" />

<tx:method name="search*" propagation="SUPPORTS" read-only="true" />

<tx:method name="exists" propagation="SUPPORTS" read-only="true" />

<tx:method name="*" propagation="REQUIRED" />

</tx:attributes>

</tx:advice>

</beans>

 

 

 

 1. Reference Libraries

 antlr-2.7.6.jar

 aopalliance-1.0.jar

 asm.jar

 aspectjrt.jar

 aspectjweaver.jar

 cglib-2.1.3.jar

 commons-collections-2.1.1.jar

 commons-dbcp-1.4.jar

 dom4j-1.6.1.jar

 hibernate3.jar

 javassist.jar

 jta.jar

 log4j-1.2.17.jar

 mysql-connector-java-5.1.31-bin.jar

 org.springframework.aop-3.0.5.RELEASE.jar

 org.springframework.asm-3.0.5.RELEASE.jar

 org.springframework.beans-3.0.5.RELEASE.jar

 org.springframework.context-3.0.5.RELEASE.jar

 org.springframework.context.support-3.0.5.RELEASE.jar

 org.springframework.core-3.0.5.RELEASE.jar

 org.springframework.expression-3.0.5.RELEASE.jar

 org.springframework.instrument-3.0.5.RELEASE.jar

 org.springframework.instrument.tomcat-3.0.5.RELEASE.jar

 org.springframework.jdbc-3.0.5.RELEASE.jar

 org.springframework.jms-3.0.5.RELEASE.jar

 org.springframework.orm-3.0.5.RELEASE.jar

 org.springframework.oxm-3.0.5.RELEASE.jar

 org.springframework.test-3.0.5.RELEASE.jar

 org.springframework.transaction-3.0.5.RELEASE.jar

 org.springframework.web-3.0.5.RELEASE.jar

 org.springframework.web.portlet-3.0.5.RELEASE.jar

 org.springframework.web.servlet-3.0.5.RELEASE.jar

 org.springframework.web.struts-3.0.5.RELEASE.jar

 commons-fileupload-1.3.1.jar

 commons-io-2.2.jar

 commons-lang-2.4.jar

 commons-lang3-3.1.jar

 commons-logging-1.1.3.jar

 freemarker-2.3.19.jar

 ognl-3.0.6.jar

 struts2-spring-plugin-2.3.16.3.jar

 xwork-core-2.3.16.3.jar

 struts2-core-2.3.16.3.jar

 commons-pool-1.6.jar

 

 2. 启动服务器,还是出错了:

2014-9-19 1:22:59 org.apache.catalina.core.AprLifecycleListener init

信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\MyEclipse\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin;C:\Apache Software Foundation\Tomcat 6.0\bin

2014-9-19 1:22:59 org.apache.coyote.http11.Http11Protocol init

信息: Initializing Coyote HTTP/1.1 on http-80

2014-9-19 1:22:59 org.apache.catalina.startup.Catalina load

信息: Initialization processed in 339 ms

2014-9-19 1:22:59 org.apache.catalina.core.StandardService start

信息: Starting service Catalina

2014-9-19 1:22:59 org.apache.catalina.core.StandardEngine start

信息: Starting Servlet Engine: Apache Tomcat/6.0.18

2014-9-19 1:23:00 org.apache.catalina.core.ApplicationContext log

信息: Initializing Spring root WebApplicationContext

01:23:01,364 ERROR ContextLoader:220 - Context initialization failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in class path resource [beans.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [beans.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: javax/persistence/Entity

at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:300)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)

at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)

at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)

at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)

at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)

at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)

at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)

at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)

at org.apache.catalina.core.StandardService.start(StandardService.java:516)

at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)

at org.apache.catalina.startup.Catalina.start(Catalina.java:578)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in class path resource [beans.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [beans.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: javax/persistence/Entity

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:435)

at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:409)

at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:541)

at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:156)

at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84)

at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:297)

... 37 more

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [beans.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: javax/persistence/Entity

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:965)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

... 52 more

Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: javax/persistence/Entity

at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:141)

at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:74)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:958)

... 60 more

Caused by: java.lang.NoClassDefFoundError: javax/persistence/Entity

at org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean.<init>(AnnotationSessionFactoryBean.java:90)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126)

... 62 more

Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

... 68 more

2014-9-19 1:23:01 org.apache.catalina.core.StandardContext listenerStart

严重: 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 'userDao': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in class path resource [beans.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [beans.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: javax/persistence/Entity

at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:300)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)

at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)

at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)

at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)

at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)

at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)

at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)

at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)

at org.apache.catalina.core.StandardService.start(StandardService.java:516)

at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)

at org.apache.catalina.startup.Catalina.start(Catalina.java:578)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in class path resource [beans.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [beans.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: javax/persistence/Entity

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:435)

at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:409)

at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:541)

at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:156)

at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84)

at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:297)

... 37 more

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [beans.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: javax/persistence/Entity

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:965)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

... 52 more

Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: javax/persistence/Entity

at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:141)

at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:74)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:958)

... 60 more

Caused by: java.lang.NoClassDefFoundError: javax/persistence/Entity

at org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean.<init>(AnnotationSessionFactoryBean.java:90)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126)

... 62 more

Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

... 68 more

2014-9-19 1:23:01 org.apache.catalina.core.StandardContext start

严重: Error listenerStart

2014-9-19 1:23:01 org.apache.catalina.core.StandardContext start

严重: Context [/ebookSSH] startup failed due to previous errors

2014-9-19 1:23:01 org.apache.catalina.core.ApplicationContext log

信息: Closing Spring root WebApplicationContext

2014-9-19 1:23:01 org.apache.coyote.http11.Http11Protocol start

信息: Starting Coyote HTTP/1.1 on http-80

2014-9-19 1:23:01 org.apache.jk.common.ChannelSocket init

信息: JK: ajp13 listening on /0.0.0.0:8009

2014-9-19 1:23:01 org.apache.jk.server.JkMain start

信息: Jk running ID=0 time=0/18  config=null

2014-9-19 1:23:01 org.apache.catalina.startup.Catalina start

信息: Server startup in 2649 ms

 

 

 3. 请教使用SSH时,如何将hibernate的xml 整合到 Spring的annotation里面呢~


问题补充:情况是这样的,本来为sessionFactory配置LocalSessionFactoryBean时,没有这个错误,现在配置的AnnotationSessionFactoryBean时,出现了这样的问题,jar包问题,现在解决了,原来的问题有出来了~

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.test.entity.User] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:920)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:789)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:431)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:409)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:541)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:156)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:297)
... 35 more

这两天一直纠结这个问题,求解决~

问题补充:原以为是beans.xml有问题,现在估计是环境有问题了,大家可以到网上下载——尚学堂_Spring_项目源码\src\Spring_3300_Registration_11,然后测试一下,马士兵演示时就没问题,到我的环境上总是通不过~
测试自己Demo的有问题,整了项目的源码仍然不行,那个源码的测试类的要么是空指针异常,要么是NoSuchBeanDefinitionException~都一个星期了,还没解决呢……
  • 大小: 24 KB
  • 大小: 18.3 KB

3个答案 按时间排序 按投票排序

0 0

No matching bean of type [com........] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency.

自动注入的时候,找不到对应的bean
原因是:对应要注入的实现类没有 加注解,如dao层 @Repository  如service层  @Service

2014年9月22日 10:01
0 0

org.test.entity.User
这个类上有注解么 ?

还有
  <list>

        <value>WEB-INF/maps</value>

  </list>
这个地方是不是改用通配符WEB-INF/maps/*.xml 这样?

2014年9月21日 15:52
0 0

应该是少hibernate-commons-annotations,hibernate-jpa-2.0-api jar包

2014年9月19日 11:05

相关推荐

    Struts2+Hibernate4+Spring3整合(注解和XML方式都有)

    压缩包文件`ssh_xml.zip`和`ssh_annotation.zip`分别包含使用XML配置和注解配置的整合示例工程。通过分析和运行这些示例,你可以更深入地理解SSH框架整合的具体步骤和工作原理,这对于学习和开发Java Web应用非常有...

    spring与hibernate的整合

    下面我们将深入探讨如何整合这两个框架,并展示如何在 Spring 容器中配置 SessionFactory 以及基于 Hibernate 原生 API 实现 DAO。 1. Spring 中配置 SessionFactory 在 Spring 容器中创建 SessionFactory 是整合...

    spring整合hibernate实现事务处理

    在`Spring_1800_Spring_Hibernate_Transaction_Annotation`这个压缩包文件中,很可能包含了使用注解方式实现Spring整合Hibernate事务处理的相关示例代码和配置文件。通过阅读和理解这些代码,你可以更好地掌握这一...

    struts2 hibernate3 spring2.5 annotation 整合

    总之,Struts2、Hibernate3和Spring2.5的整合可以大大提高开发效率,通过注解方式配置可以进一步减少XML配置文件,使代码更加简洁和易于维护。在实际项目中,这种整合方式被广泛采用,是Java Web开发的标准实践之一...

    完整版spring hibernate整合采用annotation

    总的来说,"完整版spring hibernate整合采用annotation"是一个涵盖多个知识点的主题,包括Spring注解驱动开发、Hibernate的ORM注解、Spring与Hibernate的整合配置、事务管理以及相关的开发工具使用。通过深入学习和...

    sping hibernate Annotation(注释配置) demo(例子)

    在整合 Spring 和 Hibernate 时,我们需要配置 Hibernate 的 SessionFactory,在 Spring 中可以使用 `@Bean` 注解来创建。然后,我们可以使用 `LocalSessionFactoryBean` 或 `HibernateJpaVendorAdapter` 来配置相关...

    spring3、 hibernate4 配置声明式事务管理(annotation方式)

    本篇将详细介绍如何在Spring 3和Hibernate 4中配置声明式事务管理,采用注解方式。 一、Spring的事务管理 Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。编程式事务管理需要在代码中显式地调用...

    springmvc + hibernate annotation 配置

    通过以上步骤,你已经成功地将Spring MVC与Hibernate整合,并利用注解完成了配置。这样,你就能在一个简洁、高效且易于维护的环境中开发Web应用了。记住,注解配置可以显著减少XML配置文件的数量,提高代码的可读性...

    org.springframework.orm.hibernate3.LocalSessionFactoryBean

    该类提供了自动装配Hibernate配置文件的能力,并且可以很容易地与Spring事务管理集成。 #### 三、问题原因 1. **缺少依赖**:最常见的原因是项目中没有正确添加Spring框架和Hibernate框架的相关依赖。这包括Spring...

    spring+springMVC+Hibernate整合

    2. **集成Hibernate**:接着,我们需要在Spring配置文件中引入Hibernate的相关配置,包括SessionFactory bean、Hibernate的实体类、持久化映射文件(.hbm.xml)以及数据库连接信息。Spring可以通过SessionFactory来...

    SpringMVC Spring Hibernate 框架整合 Annotation Maven Project

    1. **配置pom.xml**:引入所需的库依赖,如Spring、SpringMVC、Hibernate、MySQL驱动等。 2. **创建Spring配置文件**:定义Bean,包括DataSource、SessionFactory、HibernateTemplate等,并配置数据源、事务管理器等...

    struts2 spring2.5 hibernate3.0 annotation 整合

    本项目整合了这三个框架,并利用注解(Annotation)进行配置,简化了传统XML配置的方式。 Struts2是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于控制应用程序的流程,处理HTTP请求并分发到...

    Struts2 Spring Hibernate的配置及登录实例(附源码)

    - 源码中可能包含`struts.xml`、`applicationContext.xml`、`hibernate.cfg.xml`等配置文件。 - LoginAction类实现登录功能,可能包含validate()方法进行验证,execute()方法处理登录逻辑。 - User实体类,对应...

    spring3+hibernate4配置声明式事务管理(annotation方式)

    8. **整合步骤**:创建Spring配置,配置数据源、SessionFactory、事务管理器;在Hibernate实体类上添加`@Entity`等注解;在DAO或Service层方法上添加`@Transactional`注解;最后,启动Spring容器并运行应用,事务...

    hibernate annotation spring 中文参考文档

    在"hibernate_annotation"这个部分,我们关注的是Hibernate的注解配置方式,这种方式比传统的XML配置更加简洁直观。Hibernate注解提供了如@Entity、@Table、@Id、@GeneratedValue等,它们分别用于定义实体类、指定...

    spring3,hibernate4 配置声明式事务管理(annotation方式)

    Spring提供了强大的依赖注入(DI)和面向切面编程(AOP),而Hibernate则是一个优秀的对象关系映射(ORM)解决方案,使得开发者可以方便地操作数据库。当我们需要在应用程序中进行事务管理时,Spring提供了一种声明...

    Spring与hibernate 整合 简单示例

    总结来说,Spring与Hibernate的整合使得Java开发人员能够更方便地管理数据库操作,并利用Spring的强大功能进行事务管理和组件装配。通过这个简单的示例,我们可以了解到如何配置Spring的环境,定义实体类,创建DAO和...

    hibernate和spring MVC配置整合

    通过以上步骤,你已经成功地完成了hibernate和Spring MVC的配置整合。现在,你可以在这个基础上开发更复杂的Web应用程序,利用Spring MVC的控制层和Hibernate的数据访问层,实现高效、灵活的业务逻辑。

    基于Annotation的Struts2.0+Hibernate3.3+Spring2.5图文教程整合开发.doc

    【基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发】 这篇文档主要介绍了一个使用注解(Annotation)进行Struts2.0、Hibernate3.3和Spring2.5整合开发的教程。这种集成方式相比传统的XML配置,可以简化...

    springboot集成hibernate

    Spring Boot以其便捷的自动配置和简化Java应用开发而广受欢迎,而Hibernate作为Java领域中强大的对象关系映射工具,能够帮助我们高效地处理数据库操作。下面我们将详细介绍这个集成过程,以及在DAO层如何利用...

Global site tag (gtag.js) - Google Analytics