2015-09-26 3 views
0

Я действительно застрял с ответом кролика на POJO. Как это сделать правильно? На sprin.io просто нет практического примера. Так что я пытаюсь сделать это с этимВесна 4 и RabbitMQ json type

@Bean 
public DefaultClassMapper typeMapper() { 
    DefaultClassMapper typeMapper = new DefaultClassMapper(); 
    Map<String, Class> idClassMapping = new HashMap<String, Class>(); 
    idClassMapping.put("range", Loan.class); 
    typeMapper.setIdClassMapping(idClassMapping); 
    //typeMapper.setDefaultType(Loan.class); 
    return typeMapper; 
} 

@Bean 
    public MessageConverter messageConverter(DefaultClassMapper defaultClassMapper){ 
     JsonMessageConverter jsonMessageConverter = new JsonMessageConverter(); 
     jsonMessageConverter.setClassMapper(defaultClassMapper); 
     return jsonMessageConverter; 
    } 

«диапазон» на самом деле поддельные значения из примера. Также это действительно не работает тип problemn на .setIdClassMapping(). Также я не могу использовать картографию по умолчанию, потому что служит для отправки заголовка без поля ввода типа. И я не контролирую этот удаленный сервер. Формат данных всегда JSON.

Caused by: org.springframework.amqp.support.converter.MessageConversionException: failed to convert Message content. Could not resolve __TypeId__ in header 

Любые предложения, содержащие рабочий пример для сортировки/демонстрации объектов Java. У меня есть совершенно другой класс для отправки обратно значения из моего кода. Я использую java 8.

ответ

0

Просто напишите свой собственный ClassMapper - не используйте значение по умолчанию, если ваши критерии выбора для выбора типа класса несовместимы с его внутренними элементами.

Или вы можете подклассифицировать DefaultClassMapper и переопределить getClassIdFieldName(), чтобы сообщить, какое свойство сообщения использовать.

Смежные вопросы