Spring introduce a memory card

I see an error below that is trying to enter a card in a bean. I'm not sure how Spring deduces that the map I'm trying to enter is of type org.apache.commons.collections.map.LinkedMap. How can I solve this problem?

[org.apache.commons.collections.map.LinkedMap] for the required type [java.util.LinkedHashMap] for the 'asyncConnectorDaoMap' property; nested exception is java.lang.IllegalArgumentException: cannot convert value of type [org.apache.commons.collections.map.LinkedMap] on request type [java.util.LinkedHashMap]

Spring Configuration

<bean id="fulfillment.management.AsyncConnectorFactory" class="com.service.async.AsyncConnectorFactory">      <property name="asyncConnectorDaoMap">         <map key-type="java.lang.String" value-type="com.service.async.AsyncConnectorDao">
                     <entry key="ACCOUNT_MANAGEMENT_CONTROLLER" value-ref="core.commons.AsyncConnectorDao"></entry>
                     <entry key="CUSTOMER_SERVICE" value-ref="core.commons.AsyncConnectorDao"></entry>
                     <entry key="ACCOUNT_SERVICE" value-ref="core.commons.AsyncConnectorDao"></entry>
                     <entry key="LOCATION_SERVICE" value-ref="core.commons.AsyncConnectorDao"></entry>        </map>       </property>  </bean>

Code below

import java.util.LinkedHashMap;


public class AsyncConnectorFactory {

    private LinkedHashMap<String, AsyncConnectorDao> asyncConnectorDaoMap;

    public LinkedHashMap<String, AsyncConnectorDao> getAsyncConnectorDaoMap() {
        return asyncConnectorDaoMap;
    }

    public void setAsyncConnectorDaoMap(
            LinkedHashMap<String, AsyncConnectorDao> asyncConnectorDaoMap) {
        this.asyncConnectorDaoMap = asyncConnectorDaoMap;
    }

    public AsyncConnectorDao getAsyncConcurrentConnectorDao(String serviceIdentifier) {
        return asyncConnectorDaoMap.get(serviceIdentifier);
    }
}

Modified working configuration

    <bean id="fulfillment.management.AsyncConnectorFactory" class="com.service.async.AsyncConnectorFactory">
      <property name="asyncConnectorDaoMap" ref="asyncConnectorDaoMap1"/>
</bean> 

<util:map id="asyncConnectorDaoMap1" map-class="java.util.LinkedHashMap">
             <entry key="ACCOUNT_MANAGEMENT_CONTROLLER" value-ref="core.commons.AsyncConnectorDao"></entry>
             <entry key="CUSTOMER_SERVICE" value-ref="core.commons.AsyncConnectorDao"></entry>
             <entry key="ACCOUNT_SERVICE" value-ref="core.commons.AsyncConnectorDao"></entry>
             <entry key="LOCATION_SERVICE" value-ref="core.commons.AsyncConnectorDao"></entry>

+4
source share
1 answer

, .

<util:map id="p:asyncConnectorDaoMap" map-class="java.util.LinkedHashMap">
    <entry key="ACCOUNT_MANAGEMENT_CONTROLLER" value-ref="asyncConnectorDao"/>
    <entry key="CUSTOMER_SERVICE" value-ref="asynConnectorService"/
</util:map>

<bean id="asyncConnectorDao" class="core.commons.AsyncConnectorDao" />
<bean id="asynConnectorService" class="core.commons.AsyncConnectorService" />


<bean id="fulfillment.management.AsyncConnectorFactory" class="com.service.async.AsyncConnectorFactory">      
    <property name="asyncConnectorDaoMap" ref="asyncConnectorDaoMap"/>       
</bean>

, DAO beans . MapFactoryBean

http://www.springframework.org/schema/util 
http://www.springframework.org/schema/util/spring-util-3.0.xsd
+2

All Articles