Я пытаюсь вернуть список ResponseEntity
и приведу этот ответ в соответствие с моими модельными классами.
Например: если я использую ResponseEntity<List<ApplicationModel>>
, он работает хорошо, но я не хочу писать метод ответа для каждой модели.
ResponseEntity
метод
public static <T> ResponseEntity<List<T>> getResponseList(String resourceURL) {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
HttpEntity<List<T>> entity = new HttpEntity<List<T>>(headers);
ResponseEntity<List<T>> response = restTemplate.exchange(resourceURL, HttpMethod.GET, entity,
new ParameterizedTypeReference<List<T>>() {
}, Collections.emptyMap());
return response;
}
Вызов метода
private final String url ="http://localhost:8090/xxx/application";
ResponseEntity<List<ApplicationModel> responseForApplications =
ResponseTemplate.getResponseList(url);
if (responseForApplications.getStatusCode() == HttpStatus.OK)
List<ApplicationModel> dtoApplications = responseForApplications.getBody();
Пример ответа JSON, который я хочу разыграть
{"id": 1," name ":" foo "," description ":" foo "}
Ошибка
Произошла непредвиденная ошибка(тип = Внутренняя ошибка сервера, статус = 500).Ошибка создания бина с именем index: сбой вызова метода init;Вложенным исключением является java.lang.ClassCastException: java.util.LinkedHashMap не может быть приведен к com.xxx.ApplicationModel