【问题标题】:Spring AWS SQS - MessageConversionExceptionSpring AWS SQS - MessageConversionException
【发布时间】:2020-03-14 12:27:17
【问题描述】:

我正在尝试解决 SQS 队列的序列化问题,这里是一个代码:

@Configuration
public class QueueConfig {

    @Bean
    public QueueMessagingTemplate messagingTemplate(AmazonSQSAsync amazonSqs, ResourceIdResolver resourceIdResolver) {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.findAndRegisterModules();

        DefaultContentTypeResolver resolver = new DefaultContentTypeResolver();
        resolver.setDefaultMimeType(MimeTypeUtils.APPLICATION_JSON);

        MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
        converter.setSerializedPayloadClass(String.class);
        converter.setObjectMapper(objectMapper);
        return new QueueMessagingTemplate(amazonSqs, resourceIdResolver, converter);
    }
}

这有效(字符串):

public void publish(String queue, String value) {
    messagingTemplate.convertAndSend(queue, value);
}

这不起作用(对象):

public void publish(String queue, Something something) {
    messagingTemplate.convertAndSend(queue, something);
}

我得到错误:

org.springframework.messaging.converter.MessageConversionException: Unable to convert payload with type='com.example.Something', contentType='null', converter=[CompositeMessageConverter[converters=[org.springframework.messaging.converter.StringMessageConverter@433f5e00, org.springframework.messaging.converter.MappingJackson2MessageConverter@74e3e86e]]]

我做错了什么?

【问题讨论】:

    标签: java spring amazon-web-services queue amazon-sqs


    【解决方案1】:

    我怀疑的是这段代码

    converter.setSerializedPayloadClass(String.class);
    

    试着这样做吧

        MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
        return new QueueMessagingTemplate(amazonSqs, resourceIdResolver, converter);
    

    这将在将消息发布到队列之前将请求正文转换为字节[]。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 2017-09-17
      • 2020-07-21
      • 2016-09-14
      • 2019-08-05
      • 1970-01-01
      相关资源
      最近更新 更多