Java Spring RestTemplate调用GET接口获取单个对象反序列化报错问题
解决步骤
1. 修复Java模块系统权限配置
报错日志已经明确提示link.to.class模块没有导出link.to.class.DTO包给未命名模块,Jackson反序列化需要通过反射访问DTO类的构造方法、属性和Getter/Setter,你需要在module-info.java中添加以下配置:
// 导出DTO包 exports link.to.class.DTO; // 开放DTO包的反射访问权限给Jackson和Spring Web组件 opens link.to.class.DTO to com.fasterxml.jackson.databind, spring.web;
2. 修复JSON字段和实体属性映射不匹配问题
接口返回的JWT字段名是小写的jwttoken,但实体类中属性名为JWTToken,Jackson默认命名规则无法匹配,你需要给对应属性加字段映射注解:
@JsonProperty("jwttoken") private String JWTToken;
3. 优化GET请求构造(可选)
GET请求不需要携带请求体,你当前代码中HttpEntity传入了多余的"parameters"请求体,可以修改为:
HttpEntity<?> entity = new HttpEntity<>(headers);
修改完成后,原有的单个对象返回接收逻辑无需改动,RestTemplate完全支持接收单个实体类响应,不存在只能接收列表的限制。
内容的提问来源于stack exchange,提问作者Mr Dany
相关产品推荐
相关产品推荐

