0

エラーが発生しましたが、デバッグする場所がわかりません。

ConverterNotFoundException: タイプ @javax.validation.constraints.NotNull java.util.HashMap<@javax.validation.constraints.NotNull java.lang.String、@javax.validation.constraints.NotNull java.util. Date> を java.lang.String と入力

アプリケーションコンテキストを設定しました:

<mongo:mapping-converter id="mongoConverter" base-package="com.app">
    <mongo:custom-converters>
      <mongo:converter>
            <bean class="com.app.util.converter.HashMapToStringConverter" />
      </mongo:converter>
        <mongo:converter>
            <bean class="com.app.util.converter.StringToHashMapConverter" />
        </mongo:converter>
    </mongo:custom-converters>
</mongo:mapping-converter> 


<bean class="org.springframework.data.mongodb.core.MongoTemplate" id="mongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
    <constructor-arg name="mongoConverter" ref="mongoConverter"/>
</bean>

私のコンバーターの1つは次のとおりです。

public class HashMapToStringConverter implements Converter<HashMap<String,Date>, String>{
    @Override
    public String convert(HashMap<String,Date> map) {       
        if(map==null){
            throw new ConversionFailedException(TypeDescriptor.valueOf(HashMap.class), 
                    TypeDescriptor.valueOf(String.class), map, null);           
        }       
        StringBuilder sb = new StringBuilder();
        boolean first = true;
        for(Map.Entry<String, ?> e: map.entrySet()){             
            if(!first){ 
                sb.append(",");
                first=!first;
            }            
             sb.append(e.getKey());
             sb.append("::");
             sb.append(e.getValue());           
        }       
        return sb.toString();
    }
}
4

1 に答える 1

0

私は同様の問題を抱えていましたが、まったく異なる状況でした。DefaultConversionService のカスタム デコレーターがありました。

私がしたことは、addConverter メソッドを呼び出して、カスタム コンバーターを追加することでした。

私は次のようなものを持っていました:

public class MyConverter<Class1, Class2> {...}

そして、私が持っていた別のコードで:

DefaultConversionService cs = new MyDecoratorConversionService(new DefaultConversionService());

cs.addConverter(new MyConverter());
于 2014-06-30T19:38:10.043 に答える