我收到了错误,并且不知道在哪里调试。
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>
我的一个转换器是:
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();
}
}
答案 0 :(得分:0)
我有一个类似的问题,但情况完全不同。我有一个DefaultConversionService的自定义装饰器。
我所做的是调用方法addConverter并添加我的自定义转换器。
我有类似的东西:
public class MyConverter<Class1, Class2> {...}
在我的另一个代码中:
DefaultConversionService cs = new MyDecoratorConversionService(new DefaultConversionService());
cs.addConverter(new MyConverter());