Tôi gặp sự cố khi Consume Rest Service with RestTemplate trong Desktop App trong khi vấn đề không xuất hiện khi tôi sử dụng trong ứng dụng Web.Vấn đề khi sử dụng dịch vụ nghỉ ngơi với RestTemplate trong ứng dụng Desktop
This Is các bản ghi gỡ lỗi
15:30:40.448 [main] DEBUG o.s.web.client.RestTemplate - Reading [java.util.List] as "application/json" using [org.springf[email protected]98adae2]
15:30:40.452 [main] DEBUG httpclient.wire.content - << "[{"name":"Indonesia","id":1},{"name":"AlaySia","id":2},{"name":"Autraliya","id":3}]"
Exception in thread "main" java.lang.ClassCastException: java.util.LinkedHashMap không thể được đúc để com.mgm.domain.Country
Và đây là Mã mà tôi sử dụng.
String url = "http://localhost:8080/mgm/country";
List<MediaType> mediaTypes = new ArrayList<MediaType>();
mediaTypes.add(MediaType.APPLICATION_JSON);
HttpHeaders headers = new HttpHeaders();
headers.setAccept(mediaTypes);
HttpEntity<Country> httpEntity = new HttpEntity<Country>(null, headers);
try {
ResponseEntity<List> responseEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, List.class);
List<Country> countries = responseEntity.getBody();
System.out.println(countries.get(0).getName());
} catch (RestClientException exception) {
exception.printStackTrace();
}
Mã trên không gây ra lỗi khi tôi đặt trong ứng dụng web. Tôi sử dụng Spring Rest MVC để cung cấp JSON và Consume nó với RestTemplate.
Tôi nghĩ có vấn đề khi Jackson chuyển đổi java.util.LinkedHashMap
thành Country
. Dường như countries.get(0)
thực sự có LinkedHashMap
loại không Country
và vấn đề sẽ xuất hiện khi tôi gọi một trong Country
tole như .getName()
cho tất cả: một điểm đến ghi chú khác, RestTemplate nằm trong bình trà mùa xuân. Vì vậy, nó là một phần của dự án web mùa xuân. – Kowser