错误信息:
log4j:WARN No appenders could be found for logger (org.springframework.context.support.FileSystemXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [F:\source\myeclipse8\OnlineSurvey\WebRoot\WEB-INF\spring.xml]: Invocation of init method failed; nested exception is org.hibernate.DuplicateMappingException: Duplicate collection role mapping com.xasxt.po.Usermger.surveyreports
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.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:545)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84)
at com.xasxt.email.EmailTesr.main(EmailTesr.java:15)
Caused by: org.hibernate.DuplicateMappingException: Duplicate collection role mapping com.xasxt.po.Usermger.surveyreports
at org.hibernate.cfg.Mappings.addCollection(Mappings.java:147)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2085)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2060)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:381)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:295)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:166)
at org.hibernate.cfg.Configuration.add(Configuration.java:716)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:551)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:677)
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)
... 12 more数据库映射文件Usermger.hbm.xml
 <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.xasxt.po.Usermger" table="usermger" catalog="online">
        <id name="no" type="java.lang.String">
            <column name="no" length="32" />
            <generator class="assigned"></generator>
        </id>
        <many-to-one name="dptmger" class="com.xasxt.po.Dptmger" fetch="select">
            <column name="dMgerNo" length="32" />
        </many-to-one>
        <property name="name" type="java.lang.String">
            <column name="name" length="20" />
        </property>
        <property name="pwd" type="java.lang.String">
            <column name="pwd" length="32" />
        </property>
        <property name="phone" type="java.lang.String">
            <column name="phone" length="20" />
        </property>
        <property name="state" type="java.lang.Integer">
            <column name="state" />
        </property>
        <property name="regDate" type="java.sql.Timestamp">
            <column name="regDate" length="19" />
        </property>
        <set name="surveyreports" inverse="true">
            <key>
                <column name="userMgerNo" length="32" />
            </key>
            <one-to-many class="com.xasxt.po.Surveyreport" />
        </set>
        <set name="users" inverse="true">
            <key>
                <column name="uMgerNo" length="32" not-null="true" />
            </key>
            <one-to-many class="com.xasxt.po.User" />
        </set>
    </class>
</hibernate-mapping>
Surveyreport.hbm.xml<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.xasxt.po.Surveyreport" table="surveyreport" catalog="online">
        <id name="no" type="java.lang.String">
            <column name="no" length="32" />
            <generator class="uuid.string"></generator>
        </id>
        <many-to-one name="usermger" class="com.xasxt.po.Usermger" fetch="select">
            <column name="userMgerNo" length="32" />
        </many-to-one>
        <many-to-one name="dptmger" class="com.xasxt.po.Dptmger" fetch="select">
            <column name="dptMgerNo" length="32" />
        </many-to-one>
        <property name="surPlanNo" type="java.lang.String">
            <column name="surPlanNo" length="32" />
        </property>
        <property name="content" type="java.lang.String">
            <column name="content" length="500" />
        </property>
        <property name="date" type="java.sql.Timestamp">
            <column name="date" length="19" />
        </property>
        <property name="state" type="java.lang.Integer">
            <column name="state" />
        </property>
        <set name="surveyplans" inverse="true">
            <key>
                <column name="surRptNo" length="32" />
            </key>
            <one-to-many class="com.xasxt.po.Surveyplan" />
        </set>
    </class>
</hibernate-mapping>不知道两个配置文件哪里出错了 我用的是Eclipse8.0 

解决方案 »

  1.   

    补充一下 我的两个类 和 配置文件都在com.xasxt.po包中 我的spring配置文件就是spring.xml
    就是读取了以下spring文件就出错 
    随便写了个类 就在理面执行了以下的程序 ApplicationContext con = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/spring.xml");
    Object op=con.getBean("UsermgerDAO");
    System.out.println(op.getClass().getName());
    System.out.println("aaa")
      

  2.   

     Error creating bean with name 'sessionFactory'这句话才是关键
      测一下'sessionFactory'拿到了没
      

  3.   

    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="mappingResources">
    <list>
    <value>Usermger.hbm.xml</value>
                                    <value>Surveyreport.hbm.xml</value>
    </list>
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">
    org.hibernate.dialect.MySQL5Dialect
    </prop>
    <prop key="hibernate.query.substitutions">
    true 'Y', false 'N'
    </prop>
    <prop key="hibernate.show_sql">true</prop>
    </props>
    </property>
    </bean>