Код: Выделить всё
public class Event {
String eventName;
Instant dateTime;
}
< /code>
My Sqs Message Sulderer настроен следующим образом: < /p>
@SqsListener(value = "${sqs.queue.event.in}", acknowledgementMode = SqsListenerAcknowledgementMode.MANUAL)
public void receiveHourEvent(Acknowledgement acknowledgement, String event) {
///do something
}
< /code>
Для правильной обработки сериализации и десериализации JSON я настроил пользовательский объект -маппер в моей конфигурации пружины: < /p>
public class MyConfig {
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = JsonMappers.getObjectMapper();
// Register the JavaTimeModule to support Java 8 date/time types
objectMapper.registerModule(new JavaTimeModule());
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
return objectMapper;
}
@Bean
public SqsMessagingMessageConverter sqsMessagingMessageConverter(SqsExtendedClient sqsExtendedClient, ObjectMapper objectMapper) {
ExtendedSqsMessagingMessageConverter converter = new ExtendedSqsMessagingMessageConverter(sqsExtendedClient);
converter.setObjectMapper(objectMapper);
return converter;
}
}
@Bean
SqsTemplate sqsTemplate(SqsAsyncClient sqsAsyncClient, SqsMessagingMessageConverter sqsMessagingMessageConverter, MappingJackson2MessageConverter mappingJackson2MessageConverter) {
SqsTemplate sqsTemplate = SqsTemplate.builder()
.sqsAsyncClient(sqsAsyncClient)
.messageConverter(sqsMessagingMessageConverter)
.build();
return sqsTemplate;
}
Код: Выделить всё
com.fasterxml.jackson.datatype
jackson-datatype-jsr310
2.17.2
com.fasterxml.jackson.core
jackson-databind
2.17.2
< /code>
При отправке сообщения в очередь: < /p>
sqsTemplate.send(queueName, event);
Подробнее здесь: https://stackoverflow.com/questions/795 ... tion-fails