Я пишу webserivce, используя Spring 4. У меня проблема с привязкой данных. У меня есть исключение org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.util.ArrayList' to required type 'java.util.Set' for property 'groups'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [pl.tt.springtpl.models.Group] for property 'groups[0]': no matching editors or conversion strategy found
. Я отправляю объект в json. В сервисе I привязывающие свойства полученной карты к сущности. Все нормально, если свойства примитивны. Но если у меня есть обычное pojo, у меня есть это исключение.Spring 4 Converters
Я написал два класса:
public class ArrayListToSetConverter implements Converter<ArrayList, Set>{
public Set convert(ArrayList source) {
Set set = new HashSet();
set.addAll(source);
return set;
}
}
, и я пытаюсь сделать это более общий с этим классом:
public class StringToAbstractEntityConverter implements ConditionalGenericConverter{
public Set<ConvertiblePair> getConvertibleTypes() {
ConvertiblePair cp = new ConvertiblePair(String.class, SimpleAbstractEntity.class);
Set<ConvertiblePair> set = new HashSet<ConvertiblePair>();
set.add(cp);
return set;
}
public Object convert(Object o, TypeDescriptor td, TypeDescriptor td1) {
Object w = td.getClass();
return o;
}
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
if(sourceType.getObjectType() == String.class && targetType.isAssignableTo(TypeDescriptor.valueOf(SimpleAbstractEntity.class))){
String idAsTxt = (String)sourceType.getSource();
long id = Long.valueOf(idAsTxt);
}
return true;
}
}
Я добавить строку в классе @Configuration:
@Override
public FormattingConversionService mvcConversionService() {
FormattingConversionService bean = super.mvcConversionService(); //To change body of generated methods, choose Tools | Templates.
bean.addConverter(new StringToAbstractEntityConverter());
bean.addConverter(new ArrayListToSetConverter());
return bean;
}
Но когда я добавляю точку останова в приложении StringToAbstractEntityConverter, в ней не останавливается. Поэтому он не использует этот класс ...
Я хочу, чтобы преобразовать идентификатор от клиента к объекту ...
я буду очень благодарен, если кто-то может помочь мне с этим :)
Best привет, Мэтт.
Преобразователи списка недействительны для моих преобразователей. – user3025978