MappingJackson2MessageConverter의 ObjectMapper 구성

Google 서비스에서, Google은 대기열 (AWS SQS) 메시지 (AWS SNS 구독) 의 데이터 형식을 POJO에 비추기를 희망합니다.
나는 줄곧 이 잘못을 저질렀다
Caused by: org.springframework.messaging.converter.MessageConversionException: Could not read JSON: Cannot construct instance of `java.time.ZonedDateTime` (no Creators, like default construct, exist): no String-argument constructor/factory method to deserialize from String value ('2020-09-07T18:02:51.099+0000')
나는 해결 방안이 다시 쓰기ZonedDateTime로 모듈ObjectMapper을 등록하여 메시지를 반서열화할 수 있다고 생각한다.
이 해결 방안은 정확하지만, 여전히 오류를 해결하지 못했다.
나는 Spring Cloud을 사용하여 대기열에서 메시지를 받기 때문에 받은 메시지는 JavaTimeModule 처리된다는 것을 깨달았다.
https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jms/support/converter/MappingJackson2MessageConverter.html
솔루션은 구성MappingJackson2MessageConverter의 개체 매핑기MappingJackson2MessageConverter에 대해 1개ObjectMapper를 확보하고 추가 구성을 설정하는 것입니다.
@Bean
public MappingJackson2MessageConverter mappingJackson2MessageConverter(ObjectMapper objectMapper) {
    MappingJackson2MessageConverter jacksonMessageConverter = new MappingJackson2MessageConverter();
    jacksonMessageConverter.setObjectMapper(objectMapper);
    jacksonMessageConverter.setSerializedPayloadClass(String.class);
    jacksonMessageConverter.setStrictContentTypeMatch(true);
    return jacksonMessageConverter;
}
이 문장이 너에게 도움이 되었으면 좋겠어!

좋은 웹페이지 즐겨찾기