I use Jackson and hibernate in my spring-boot project:
private MappingJackson2HttpMessageConverter jacksonMessageConverter() {
MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new Hibernate4Module());
messageConverter.setObjectMapper(mapper);
return messageConverter;
}
And add it to converters:
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(jacksonMessageConverter());
I use facebook webhooks to recive information about new messages in messenger:
public ResponseEntity<Void> handleCallback(@RequestBody final String payload,
@RequestHeader(SIGNATURE_HEADER_NAME) final String signature) {
payload parameter is a string, but jackson converter cannot deserialize it :
w.s.m.s.DefaultHandlerExceptionResolver : Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: Can not deserialize instance of java.lang.String out of START_OBJECT token at [Source: java.io.PushbackInputStream@60a118dc; line: 1, column: 1]; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token at [Source: java.io.PushbackInputStream@60a118dc; line: 1, column: 1]
I've tried to delete JacksonMapper and then webhooks work, but my database doesn't:
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
Do you have an idea how to deserialize facebook webhooks with jackson & hibernate?