【发布时间】: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