1

Spring 3.0を使用していて、プロパティセッターインジェクションを試していますMap<String ,String>

構成とsetterメソッドは次のとおりです。Springの構成は次のとおりです。

<bean name="geocoder" class="com.g1.component.igeocode.RemoteGeocoder" >
         <property name="geocoderConverters">
            <map>
                <entry key="Default" value="com.g1.component.igeocode.mapmarker.DefaultGeocoderConverter"/>
                <entry key="4.8.1.51" value="com.g1.component.igeocode.mapmarker.GeocoderConverter_v4_8_1_51"/>
            </map>
        </property>
</bean>

RemoteGeocoder.java

private Map<String, String> geocoderConverters;

    public Map<String, String> getGeocoderConverters() {
        return geocoderConverters;
    }

    public void setGeocoderConverters(Map<String, String> geocoderConverters) {
        this.geocoderConverters = geocoderConverters;
    }

しかし、実行時に以下のエラーが発生します:

Error creating bean with name 'geocoder' defined in URL [file:/E:/Spectrum code/Spectrum 7/cdqplatform/platform/server/dist/target/g1server/server/app/tmp/igeocode-global-7.0.car-1643772799809108204-contents/resourcestage-config.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
    PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'geocoderConverters' threw exception; nested exception is java.lang.IllegalStateException: No Method invoker set on com.g1.component.igeocode.RemoteGeocoder@12a6f35

誰かがこれについて洞察を投げることができますか?

ありがとう。

4

1 に答える 1

1

キーと値の型を に指定してみてくださいString:

<property name="geocoderConverters">
    <map key-type="java.lang.String" value-type="java.lang.String" map-class="java.util.HashMap">
        <entry key="Default" value="com.g1.component.igeocode.mapmarker.DefaultGeocoderConverter"/>
        <entry key="4.8.1.51" value="com.g1.component.igeocode.mapmarker.GeocoderConverter_v4_8_1_51"/>
    </map>
</property>
于 2013-02-20T20:58:53.630 に答える