我在桌面应用程序中使用RestTemplate消费休息服务时出现问题,而在Web应用程序中使用时不会出现问题.
这是调试日志
15:30:40.448 [main] DEBUG o.s.web.client.RestTemplate - Reading [java.util.List] as "application/json" using [org.springframework.http.converter.json.MappingJacksonHttpMessageConverter@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 cannot be cast to com.mgm.domain.Country
这是我使用的代码.
String url = "http://localhost:8080/mgm/country";
Listhttpentityhttpentity = new httpentityhttpentity,List.class);
Liststem.out.println(countries.get(0).getName());
} catch (RestClientException exception) {
exception.printstacktrace();
}
当我将它放在网络应用程序中时,上面的代码不会出错.我使用Spring Rest MVC提供JSON并将其与RestTemplate一起使用.
当Jackson将java.util.LinkedHashMap转换为Country时,我认为存在问题.看起来countries.get(0)实际上有LinkedHashMap类型而不是Country,当我调用Country方法之一时会出现问题,如.getName()
最佳答案
尝试使用数组:
String url = "http://localhost:8080/mgm/country";
Listhttpentityhttpentity = new httpentitystem.out.println(countries[0].getName());
} catch (RestClientException exception) {
exception.printstacktrace();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。