开发者社区 > 云原生 > 消息队列 > 正文

RocketMQ现在是发消息序列化取得MessageConverter不对,正常应该是这个的吧?

439962b4ca378bcac2c6f01c0867665e.png
RocketMQ现在是发消息序列化取得MessageConverter不对,正常应该是这个的吧
12eb5389a41a84194fa7039c797786a2.png

展开
收起
嘟嘟嘟嘟嘟嘟 2024-07-10 12:26:17 47 0
1 条回答
写回答
取消 提交回答
  • 加这个试试
    package icu.kevin.mq.rocketmq.config;

    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
    import org.apache.rocketmq.spring.support.RocketMQMessageConverter;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.Primary;
    import org.springframework.messaging.converter.CompositeMessageConverter;
    import org.springframework.messaging.converter.MappingJackson2MessageConverter;
    import org.springframework.messaging.converter.MessageConverter;

    import java.util.List;

    @Configuration
    public class RocketMQEnhanceConfig {

    /**
     * 解决RocketMQ Jackson不支持Java时间类型配置
     */
    @Bean
    @Primary
    public RocketMQMessageConverter enhanceRocketMQMessageConverter(){
        RocketMQMessageConverter converter = new RocketMQMessageConverter();
        CompositeMessageConverter compositeMessageConverter = (CompositeMessageConverter) converter.getMessageConverter();
        List<MessageConverter> messageConverterList = compositeMessageConverter.getConverters();
    
        for (MessageConverter messageConverter : messageConverterList) {
            if(messageConverter instanceof MappingJackson2MessageConverter){
                MappingJackson2MessageConverter jackson2MessageConverter = (MappingJackson2MessageConverter) messageConverter;
                ObjectMapper objectMapper = jackson2MessageConverter.getObjectMapper();
                objectMapper.registerModules(new JavaTimeModule());
            }
        }
        return converter;
    }
    

    }
    此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2024-07-10 13:03:55
    赞同 9 展开评论 打赏

高弹性低成本、更稳定更安全、智能化免运维的消息队列服务,涵盖RocketMQ、Kafka、RabbitMQ、MQTT、MNS等。 RocketMQ一站式学习:https://rocketmq-learning.com

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    基于 RocketMQ+ Knative 驱动云原生 Ser 立即下载
    基于 RocketMQ + Knative 驱动云原生 Serverless 应用 立即下载
    RocketMQ Operator-K8s平台自动化部署工具 立即下载