错误信息:
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
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
就是读取了以下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")
测一下'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>