Зарегистрированный objectMapper должен использоваться с параметром ACCEPT_SINGLE_VALUE_AS_ARRAY .
Возможно, самый простой способ добиться этого - зарегистрировать правильно инициализированные ObjectMapper
и MappingJacksonHttpMessageConverter
в классе аннотируется с помощью @Configuration
:
@Bean
public ObjectMapper getObjectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(ACCEPT_SINGLE_VALUE_AS_ARRAY);
return objectMapper;
}
@Bean
public MappingJacksonHttpMessageConverter mappingJacksonHttpMessageConverter(ObjectMapper objectMapper) {
MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter();
converter.setObjectMapper(objectMapper);
return converter;
}
Другой способ - установить преобразователь непосредственно на объект restTemplate:
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(ACCEPT_SINGLE_VALUE_AS_ARRAY);
return objectMapper;
}
public MappingJackson2HttpMessageConverter httpConverter(ObjectMapper objectMapper) {
return new MappingJackson2HttpMessageConverter(objectMapper);
}
public void restTemplate() {
RestTemplate restTemplate = new RestTemplate();
restTemplate.setMessageConverters(Arrays.asList(httpConverter(objectMapper())));
restTemplate.exchange(...);
}