YerivanLazerev
YerivanLazerev

Reputation: 375

Jackson2JsonMessageConverter serializing LocalDateTime in specific pattern

I am trying to send an event using RabbitMQ and SpringBoot.

@Configuration class:

  @Bean
   public Jackson2JsonMessageConverter producerJackson2MessageConverter() {
            return new Jackson2JsonMessageConverter();
    }

Event class:

public class TheEvent{

    @JsonFormat(pattern = "dd::MM::yyyy")
    private  LocalDateTime date;
//setters getters

}

When I send it, it arrives as:

{"month":"JULY","year":2018,"dayOfMonth":12,"dayOfWeek":"THURSDAY","dayOfYear":193,"hour":16,"minute":29,"nano":835000000,"second":24,"monthValue":7,"chronology":{"id":"ISO","calendarType":"iso8601"}},"direction":1}"

How can I serialize this date object in predefined pattern? (Remember that I just registering bean Jackson2JsonMessageConverter)

Also tried this:

@Bean
    @Primary
    public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) {      
        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
        objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true);
        return objectMapper;
    }

Upvotes: 3

Views: 3654

Answers (1)

It works for me:

@Bean
public Jackson2JsonMessageConverter converter(Jackson2ObjectMapperBuilder builder) {
    ObjectMapper objectMapper = builder.createXmlMapper(false).build();
    objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true);
    return new Jackson2JsonMessageConverter(objectMapper);
}

In project I used RabbitListener and that Jackson2JsonMessageConverter

Listener:

@RabbitListener(queues = "${spring.rabbitmq.queue}")
@Transactional
public void receiveSocialPost(SocialPost socialPost) {
}

Upvotes: 5

Related Questions