Начиная с обновления до spring-hateoas 1.0.3, каждый раз, когда контроллер возвращает ресурс, содержащий ссылки, регистрируется следующее предупреждение:
o.s.h.c.j.MappingJackson2HttpMessageConverter - Failed to evaluate Jackson serialization for type [class org.springframework.hateoas.EntityModel]: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.hateoas.mediatype.hal.Jackson2HalModule$HalLinkListSerializer': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.hateoas.mediatype.hal.Jackson2HalModule$HalLinkListSerializer]: No default constructor found; nested exception is java.lang.NoSuchMethodException: org.springframework.hateoas.mediatype.hal.Jackson2HalModule$HalLinkListSerializer.<init>()
Контроллер возвращает EntityModel
, включая некоторые Links
:
@GetMapping("/some-endpoint")
fun someEndpoint() : EntityModel<String> {
return EntityModel("some-string", Link("https://some-href"))
}
Сопоставители объектов конвертеров сообщений настроены таким образом, что они могут отображать ссылки:
objectMapper.registerModule(Jackson2HalModule())
Удаление JacksonModule из сопоставителя объектов останавливает предупреждения.
К сожалению, без регистрации JacksonModule ссылки не отображаются должным образом. Свойство templated
игнорируется (как указано в Links.java
).
У кого-нибудь есть идеи, как избежать предупреждений и включить рендеринг ссылок?