【发布时间】:2021-09-15 01:42:35
【问题描述】:
我正在使用 spring cloud starter aws 消息传递
implementation 'io.awspring.cloud:spring-cloud-starter-aws'
implementation 'io.awspring.cloud:spring-cloud-starter-aws-messaging'
版本
set('springCloudAwsVersion', '2.3.1')
dependencyManagement {
imports {
mavenBom "io.awspring.cloud:spring-cloud-aws-dependencies:${springCloudAwsVersion}"
}
}
我的配置 bean
@Bean
public QueueMessagingTemplate queueMessagingTemplate(final AmazonSQSAsync amazonSqs) {
return new QueueMessagingTemplate(amazonSqs);
}
@Bean
public AmazonSQSAsync amazonSqs() {
return AmazonSQSAsyncClientBuilder.standard()
.build();
}
@Bean
public ObjectMapper messageConverter() {
return new ObjectMapper().findAndRegisterModules();
}
@Bean
public MappingJackson2MessageConverter mappingJackson2MessageConverter(final ObjectMapper objectMapper) {
final var jacksonMessageConverter = new MappingJackson2MessageConverter();
jacksonMessageConverter.setObjectMapper(objectMapper);
jacksonMessageConverter.setSerializedPayloadClass(String.class);
jacksonMessageConverter.setStrictContentTypeMatch(false);
return jacksonMessageConverter;
}
@Bean
public QueueMessageHandlerFactory queueMessageHandlerFactory(final MappingJackson2MessageConverter messageConverter) {
final var factory = new QueueMessageHandlerFactory();
factory.setArgumentResolvers(List.of(new PayloadMethodArgumentResolver(messageConverter)));
return factory;
}
@Bean
public SimpleMessageListenerContainerFactory simpleMessageListenerContainerFactory(final AmazonSQSAsync amazonSqs) {
final var factory = new SimpleMessageListenerContainerFactory();
factory.setAmazonSqs(amazonSqs);
factory.setMaxNumberOfMessages(1);
return factory;
}
当我@inject QueueMessagingTemplate 并使用方法 sendAndConvert 我的 POJO 的所有 java8 时间字段转换为单独的字段分钟小时等时出现问题......对象不是字符串。 所以当我尝试反序列化我的对象映射器抛出异常时的后果
我尝试使用 GroupIdResolver(as null) 和相同的 mapping2jacksonConverter 注册 QueueMessagingTemplate 但导致 asyncClient 停止连接到队列
【问题讨论】:
标签: amazon-web-services cloud amazon-sqs spring-cloud-aws