org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'usersSerivceImpl' defined in file [F:\TomCat\apache-tomcat-6.0.29\webapps\Shopping\WEB-INF\classes\applicationContext-bean.xml]: Cannot resolve reference to bean 'hibernateTemplate' while setting bean property 'hibernateTemplate'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in file [F:\TomCat\apache-tomcat-6.0.29\webapps\Shopping\WEB-INF\classes\applicationContext-public.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 file [F:\TomCat\apache-tomcat-6.0.29\webapps\Shopping\WEB-INF\classes\applicationContext-public.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: An association from the table goods refers to an unmapped class: Category
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:1308)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1067)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:562)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
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:546)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in file [F:\TomCat\apache-tomcat-6.0.29\webapps\Shopping\WEB-INF\classes\applicationContext-public.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 file [F:\TomCat\apache-tomcat-6.0.29\webapps\Shopping\WEB-INF\classes\applicationContext-public.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: An association from the table goods refers to an unmapped class: Category
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:1308)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1067)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
... 39 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [F:\TomCat\apache-tomcat-6.0.29\webapps\Shopping\WEB-INF\classes\applicationContext-public.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: An association from the table goods refers to an unmapped class: Category
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1403)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
... 49 more
Caused by: org.hibernate.MappingException: An association from the table goods refers to an unmapped class: Category
at org.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:1343)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1261)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1206)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:717)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1400)
... 56 more
exceptiontomcat

解决方案 »

  1.   

    <?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:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <!-- 在Spring中,BEAN 默认是自动是自动加载, 但是baseServiceImpl 实例化需要子类的支持 -->
    <bean id="baseServiceImpl" class="cn.itcast.shop.service.impl.BaseServiceImpl" lazy-init="true">
    <property name="hibernateTemplate" ref="hibernateTemplate" />
    </bean>

    <!-- Spring支持 父类属性的注入,但是这样写有冗余,子类每次都要注入 -->
    <bean id="usersSerivceImpl" class="cn.itcast.shop.service.impl.UsersSerivceImpl" parent="baseServiceImpl" />
    <bean id="goodsServiceImpl" class="cn.itcast.shop.service.impl.GoodsServiceImpl" parent="baseServiceImpl" />
    <bean id="categoryServiceImpl" class="cn.itcast.shop.service.impl.CategoryServiceImpl" parent="baseServiceImpl" />
    </beans>
    <?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:p="http://www.springframework.org/schema/p"
    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/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 ">

    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <!-- 每个框架配置自己的文件,有关数据库的所有信息都配置到Hibernate配置文件中,只需要告诉Hibernate路径即可 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation" value="classpath:hibernate.cfg.xml" />
    </bean>
    <!-- 事务管理器 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <!-- 只需要管理sessionFactory即可,所有的session都是sessionFactory创建的 -->
    <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <!-- 配置通知 -->
    <tx:advice id="advice" transaction-manager="transactionManager">
    <tx:attributes>
    <!-- 必须的,有就用,没有就开启一个新事务 -->
    <tx:method name="save*" propagation="REQUIRED"/>
    <tx:method name="update*" propagation="REQUIRED"/>
    <tx:method name="delete*" propagation="REQUIRED"/>
    <tx:method name="*" read-only="true"/>
    </tx:attributes>
    </tx:advice>
    <!-- 配置AOP功能 -->
    <aop:config>
    <!-- 配置切面表达式 -->
    <aop:pointcut expression="execution (* cn.itcast.shop.service.impl.BaseServiceImpl.*(..))" id="pointcut"/>
    <aop:advisor advice-ref="advice" pointcut-ref="pointcut"/>
    </aop:config>
    </beans>
      

  2.   

    你的hibernate.cfg.xml文件中没有添加 <mapping resource="Category.hbm.xml"/>,所以他找不到这个类
      

  3.   

    <hibernate-configuration>
    <session-factory>
    <property name="dialect">
    org.hibernate.dialect.MySQLDialect
    </property>
    <property name="connection.url">
    jdbc:mysql://localhost:3306/shop
    </property>
    <property name="connection.username">root</property>
    <property name="connection.password">xieqixiang</property>
    <property name="connection.driver_class">
    com.mysql.jdbc.Driver
    </property> <property name="c3p0.initialPoolSize">5</property>
    <property name="c3p0.minPoolSize">10</property>
    <property name="c3p0.maxPoolSize">20</property>
    <property name="c3p0.maxIdleTime">6000</property>

    <property name=""></property> <property name="show_sql">true</property>
    <!-- 自动提交事务 -->
    <property name="connection.autocommit">false</property>
    <property name="myeclipse.connection.profile">mysql5</property>



    <mapping resource="cn/itcast/shop/pojo/Users.hbm.xml" />
    <mapping resource="cn/itcast/shop/pojo/Goods.hbm.xml" />
    <mapping resource="cn/itcast/shop/pojo/Category.hbm.xml" />

    </session-factory>
    </hibernate-configuration>
    已经加了,不行。我用的是JDK1.7,Struts2.3,Hibernate3.6,spring3.0
      

  4.   

    Caused by: org.hibernate.MappingException: An association from the table goods refers to an unmapped class: Category
    表goods关联指向一个没有映射的类Category
    仔细检查下映射配置
      

  5.   

    哎,annotation的鸟儿飞过,帮你顶下
      

  6.   

    #4 得分:0 回复于: 2013-02-23 01:52:48 
    你的hibernate.cfg.xml文件中没有添加 <mapping resource="Category.hbm.xml"/>,所以他找不到这个类 
      

  7.   

    配置文件中漏了些必要的配置,需要检查一下usersSerivceImpl这个文件会调用到的DAO文件是否都配置在配置文件中呢?可以从这里开始检查。
      

  8.   

    Cannot resolve reference to bean 'hibernateTemplate' while setting bean property 'hibernateTemplate'; 
    找不到hibernateTemplate hibernate的配置文件路径不对 以至于别的都错误
      

  9.   

    你没有把hibernateTemplate 给他配置进去。  就是说没有加入模版   web.xml 中看看监听有没有设置