मुझे एक समस्या है जब डेस्कटॉप ऐप में RestTemplate के साथ बाकी सेवा का उपभोग करें, जबकि जब मैं वेब ऐप में उपयोग करता हूं तो समस्या प्रकट नहीं होती है।डेस्कटॉप ऐप में RestTemplate के साथ आराम सेवा का उपभोग करते समय समस्या
यह डिबगिंग लॉग सूत्र में
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}]"
अपवाद नहीं है "मुख्य" java.lang.ClassCastException: java.util.LinkedHashMap com.mgm.domain.Country
में ढाला नहीं जा सकता
और यह वह कोड है जिसका मैं उपयोग करता हूं।
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();
}
उपरोक्त कोड त्रुटियों को नहीं देता है जब मैं इसे वेब ऐप में रखता हूं। मैं JSON प्रदान करने के लिए स्प्रिंग रेस्ट एमवीसी का उपयोग करता हूं और इसे RestTemplate के साथ उपभोग करता हूं।
मुझे लगता है कि जैक्सन कनवर्ट java.util.LinkedHashMap
से Country
पर कोई समस्या है। ऐसा लगता है कि countries.get(0)
वास्तव में LinkedHashMap
प्रकार नहीं Country
है और समस्या दिखाई दिया जाएगा जब मैं की तरह .getName()
वसंत-वेब जार में। तो यह वसंत वेब परियोजना का एक हिस्सा है। – Kowser