Ошибка вызова API, возвращающего логическое значение ResponseEntity - PullRequest
1 голос
/ 21 мая 2019

У меня есть весенний проект, в котором у меня есть следующий API-интерфейс в контроллере:

   public ResponseEntity<Boolean> testApi(
                @ApiParam @RequestParam(value = "xxx", required = false) String name) {
            boolean abc = false;  // or true
            return new ResponseEntity<>(abc, HttpStatus.OK);
    }

API возвращает прекрасный результат при вызове через почтальона.Тем не менее, в моем модульном тесте, где я называю это:

MappingJackson2HttpMessageConverter converter = new 
MappingJackson2HttpMessageConverter();
converter.setSupportedMediaTypes(Arrays.asList(MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON);
restTemplate.getRestTemplate().getMessageConverters().add(0, converter);
ResponseEntity<Boolean> xyz = restTemplate.getForEntity(url, Boolean.class);

, я получаю следующую ошибку:

org.springframework.web.client.RestClientException: Error while extracting response for type [class java.lang.Boolean] and content type [application/json;charset=UTF-8]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.lang.Boolean` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.Boolean` out of START_OBJECT token

Примечание. My restTemplate - это org.springframework.boot.test.web.client.TestRestTemplate;

и Autowired as:

@Autowired
private TestRestTemplate restTemplate;

Я вижу эту проблему только при вызове API, возвращающего логическое значение.Для других API, возвращающих объекты, он отлично работает

...