У меня есть следующий вызов REST с конвертером Spring (5.0.1) RestTemplate
и Jackson 2 (fastxml):
final List<HttpMessageConverter<?>> messageConverters = restTemplate.getMessageConverters();
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
final ObjectMapper objectMapper = converter.getObjectMapper();
objectMapper.enable(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL);
restTemplate.getMessageConverters().add(converter);
Что я не понимаю, так это когда ответ от сервера имеет неизвестное свойство JSON, он просто устанавливает его на null
против того, что я предположил RestTemplate#getForEntity()
, выдавая исключение при извлечении данных:
ResponseEntity<MyResponse> responseEntity = restTemplate.getForEntity("http//some-url/api", MyResponse.class);
Объект отображения - просто Serializable
и не имеет аннотации Джексона:
public class MyResponse implements Serializable {
private String propertyOne;
private String propetyTwo;
}
Ответ JSON выглядит так:
{
"propertyOne":"one",
"badName":"two"
}
Сопоставленный объект содержит значение для propertyOne
, но null
для badName
в этом случае.
Не вызывает ли RestTemplate
/ Jackson
нормальное исключение / ошибку в этих случаях?
Что если я хочу заставить вызов вызвать исключение?