我通过做一些事情解决了这个问题。
我不得不从0.19.0更新到spring-hateoas:0.20.0.RELEASE。spring-hateoas:0.19.0不支持此处指定的jackson 2.7+ 。
我更新了我的客户电话,如下所示。
ObjectMapper mapper = builder.build()MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();messageConverter.setSupportedMediaTypes(MediaType.parseMediaTypes("application/hal+json"))messageConverter.setObjectMapper(mapper)ResponseEntity<PagedResources<MyEntity>> responseEntity = new RestTemplate(Arrays.asList(messageConverter)) .exchange( uri, HttpMethod.GET, HttpEntity.EMPTY, new ParameterizedTypeReference<PagedResources<MyEntity>>() {}, port )现在,PagedResources如下所示:
<200 OK,PagedResource { content: [{<List of MyEntities>}], metadata: metadata { number: 0, total pages: 1, total elements: 10, size: 20 }, links: [<List of hateoas links for MyEntities>] },{Server=[Apache-Coyote/1.1], Content-Type=[application/hal+json;charset=UTF-8], Transfer-Encoding=[chunked], Date=[Thu, 21 Jul 2016 14:57:18 GMT]}>@zeroflagL的评论使我更加仔细地查看了PagedResources实现,最终导致了“啊哈!”
时刻与这个博客。
相关的一点是,默认值
RestTemplate未将accept标头设置为
application/hal+json。相反,默认值为
application/x-spring-data-compact+json;charset=UTF-8不包含内容且仅包含链接。这就是为什么我要为
Resources类型输入空内容的原因。如上显式设置MediaType可解决此问题。



