Невозможно преобразовать Enum в int с помощью Spring Converter
Мое приложение использует BlazeDS для связи между Flex и Java. Я использую Spring для интеграции BlazeDS в Java.
У меня есть перечисление под названием TransactionStatus. На гибкой стороне соответствующие свойства задаются как целые числа. Я пытаюсь использовать пользовательские конвертеры для обработки этого преобразования. Вот мои конвертеры:
public class TransactionStatusIntConverter implements Converter<TransactionStatus, Integer> {
@Override
public Integer convert(TransactionStatus src) {
if(src == null){
return 0;
} else {
return src.getValue();
}
}
}
А также
public class IntTransactionStatusConverter implements Converter<Integer, TransactionStatus> {
@Override
public TransactionStatus convert(Integer src) {
return TransactionStatus.fromInt(src);
}
}
При отправке данных из клиента Flex в Java преобразование завершается успешно, и я получаю экземпляр TransactionStatus, как и ожидалось. Но при отправке данных из Java во Flex функция преобразования никогда не выполняется. Оба преобразователя точно зарегистрированы в моем классе ConfigProcessor
@Override
protected void configureConverters(ConverterRegistry registry) {
registry.addConverter(new IntTransactionStatusConverter());
registry.addConverter(new TransactionStatusIntConverter());
}
Что тут происходит?