首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring 4和RabbitMQ json类型

Spring 4和RabbitMQ json类型
EN

Stack Overflow用户
提问于 2015-09-26 21:44:30
回答 1查看 538关注 0票数 1

我真的被POJO的cast Rabbit response卡住了。如何正确地做到这一点?在sprin.io上没有实际的例子。所以我试着用这个

代码语言:javascript
复制
@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;
    }

"range“实际上是来自示例的假值。此外,这在.setIdClassMapping()上也不能解决类型问题。另外,我不能使用默认的映射器,因为serve send报头没有类型提示字段。而且我对这台远程服务器没有控制权。数据格式始终为JSON。

代码语言:javascript
复制
  Caused by: org.springframework.amqp.support.converter.MessageConversionException: failed to convert Message content. Could not resolve __TypeId__ in header

编组/解组Java对象的任何建议工作示例。我有一个与代码完全不同的返回值的类。我使用的是java 8。

EN

回答 1

Stack Overflow用户

发布于 2015-09-28 21:22:44

只需编写您自己的ClassMapper -如果您选择类类型的决策标准与其内部不兼容,请不要使用默认的its。

或者,您可以子类化DefaultClassMapper并覆盖getClassIdFieldName(),以告诉它要使用哪个消息属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32797845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档