我有一个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作为默认媒体类型 然后我不应该收到此错误。
这里有什么我想念的吗?
答案 0 :(得分:1)
嗯,该消息非常具有说明性 - 您将text/html
作为响应类型,使您的终端返回application/json
。如果您正在使用Spring MVC,那么您可以通过将produce参数添加到注释中来实现:
@RequestMapping(value = "/pets/{id}", method = RequestMethod.GET, produces = "application/json")
或者,如果您正在使用Jersey,请将此注释添加到您的方法中:
@Produces("application/json")