没有合适的MessageConverter

时间:2016-07-24 22:55:12

标签: json spring-boot resttemplate

我有一个spring boot应用程序,正在测试集成测试。我的REST服务生成JSON,我可以在postman中测试它时确认它。

但是当我通过restTemplate进行getForObject调用时:

 @Test
    public void testGetObject() {
        Pet pet = restTemplate.getForObject("http://localhost:9000/pets/10000", User.class, Collections.emptyMap());
        assertThat(pet.getName(), is("Bobby"));
    }

失败并出现以下错误:

Could not extract response: no suitable HttpMessageConverter found for response type [class petstore.entity.User] and content type [text/html;charset=utf-8]

我在stackoverflow中阅读了很多帖子,并且让restTempalte本身将 MappingJackson2HttpMessageConverter 作为默认转换器之一,其中 JSON作为默认媒体类型 然后我不应该收到此错误。

这里有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

嗯,该消息非常具有说明性 - 您将text/html作为响应类型,使您的终端返回application/json。如果您正在使用Spring MVC,那么您可以通过将produce参数添加到注释中来实现:

@RequestMapping(value = "/pets/{id}", method = RequestMethod.GET, produces = "application/json")

或者,如果您正在使用Jersey,请将此注释添加到您的方法中:

@Produces("application/json")