2015-06-10 78 views
-1

大家好,春天 - 框架:同時拉動記錄

我同時在spring.xml文件中使用地圖收到以下異常給予例外。 我「spring.xml」文件包含以下信息,請告訴我,你需要實現類也:

<bean id="triangleMap" class="practice.spring.model.TriangleSet"> 
     <property name="points"> 
      <map> 
       <entry key="PointA" value-ref="point1" /> 
       <entry key="PointB" value-ref="point2" /> 
       <entry key="PointC" value-ref="point3" /> 
      </map> 
     </property> 
    </bean> 

    <bean name="point1" class="practice.spring.model.Point"> 
     <property name="x" value="0" /> 
     <property name="y" value="0" /> 
    </bean> 

    <bean id="point2" class="practice.spring.model.Point"> 
     <property name="x" value="0" /> 
     <property name="y" value="10" /> 
    </bean> 

    <bean id="point3" class="practice.spring.model.Point"> 
     <property name="x" value="0" /> 
     <property name="y" value="-10" /> 
    </bean> 

這是給以下異常:

 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'triangleMap' defined in class path resource [spring.xml]: Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.util.LinkedHashMap' to required type 'java.util.Set' for property 'points'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.util.LinkedHashMap] to required type [practice.spring.model.Point] for property 'points[0]': no matching editors or conversion strategy found 
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527) 
      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.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
      at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
      at practice.spring.service.DrawingApp.main(DrawingApp.java:14) 
     Caused by: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.util.LinkedHashMap' to required type 'java.util.Set' for property 'points'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.util.LinkedHashMap] to required type [practice.spring.model.Point] for property 'points[0]': no matching editors or conversion strategy found 
      at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:462) 
      at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:499) 
      at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:493) 
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1371) 
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1330) 
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086) 
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) 
      ... 11 more 
     Caused by: java.lang.IllegalStateException: Cannot convert value of type [java.util.LinkedHashMap] to required type [practice.spring.model.Point] for property 'points[0]': no matching editors or conversion strategy found 
      at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:231) 
      at org.springframework.beans.TypeConverterDelegate.convertToTypedCollection(TypeConverterDelegate.java:520) 
      at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:173) 
      at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:447) 
      ... 17 more 

回答

0

這是一個小的失誤。我的錯誤是在那裏在線

<bean id="triangleMap" class="practice.spring.model.TriangleSet"> 

在這裏,我指向TriangleSet具有「設置」屬性,但我通過地圖實施。所以它拋出了一個錯誤。