求助!!Spring boot 的 RestTemplate把Response对象被转成LinkedHashMap

Shiitou Shiitou 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
用spring boot 做了两个APi,两个APi之间的调用使用了RestTemplate的postForObject方法,返回类型是自定义的ApiResponse。

被调用的A api Controller

@Controller
public class TestController {
@RequestMapping(value = "invocationMethod", method = RequestMethod.POST)
public ApiResponse getContracts(@PathVariable Integer id) {
ResultModel model = new ResultModel();
TestObject object = new TestObject();
object.setFild1("fild1");
object.setFild2("fild2");
model.setId("1");
model.setName("testName");
model.setObject(object);
return ApiResponse.success(model);
}
}


返回类型 ApiResponse

public class ApiResponse {

// return code 200:OK
private Integer statusCode;

// whole message
private String message;

// The component of data
private Object responseData;



private ApiResponse(ResultStatus status) {
this.statusCode = status.code();
this.message = status.reason();
}

public static ApiResponse success(Object responseData) {
ApiResponse response = new ApiResponse(ResultStatus.SUCCESS);
return response.setResponseData(responseData);
}

}


返回结果ResultModel

public class ResultModel {

private String id;

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public TestObject getObject() {
return object;
}

public void setObject(TestObject object) {
this.object = object;
}

private String name;

private TestObject object;

}


TestObject对象

public class TestObject {

private String fild1;

private String fild2;

public String getFild1() {
return fild1;
}

public void setFild1(String fild1) {
this.fild1 = fild1;
}

public String getFild2() {
return fild2;
}

public void setFild2(String fild2) {
this.fild2 = fild2;
}

}


B Api的 Model和A api的Model完全一样。

B Api 调 A Api

public class TestService {

@Autowired
private RestTemplate restTemplate;

public ApiResponse callAapi() {

ApiResponse response =
restTemplate.postForObject("http://localhost:9000/invocationMethod", "",
ApiResponse.class);
return response;
}
}


当把ApiResponse的ResponseData转成ResultModel的,出错了

public ResultModel getResultModel(ApiResponse response) {
return (ResultModel) response.getResponseData();
}


报的错是LinkedHashMap不能转换成ResultModel。

想请问一下,A Api的response实际是一个json的字符串,通过postForObject转成了Bean的实体类,为什么response中的ResponseData不能转成Bean,而是被转成了linkedHashMap?
调查了很久,没找到原因,希望坛子里的大神们,如有看到此贴,麻烦发表下看法,谢谢!!!!


...全文

相关推荐

Spring Boot中Shiro与OAuth2集成实战:微信与GitHub第三方登录

OAuth2作为一种授权框架,其核心原理是允许应用在用户不提供密码的情况下,安全地获取其在第三方服务上的资源或身份信息。这一机制在现代Web应用中具有重要技术价值,是实现单点登录和第三方身份认证的基础。在Java生态中,Apache Shiro作为一个经典的安全框架,专注于应用内部的认证、授权和会话管理。将OAuth2与Shiro结合,能够构建既安全又灵活的身份认证与授权体系,尤其适用于需要集成微信、GitHub等第三方登录的Spring Boot应用。本文通过实战案例,详细解析了如何利用Spring Se

wangqiaowqo

Java后端面试攻略:从JVM、并发到Spring AI的全栈知识体系构建

Java后端开发的核心在于构建高性能、高可用的分布式系统,这离不开对底层原理的深刻理解。从JVM内存模型与垃圾回收机制,到并发编程中的可见性、原子性与有序性问题,再到MySQL索引优化与事务隔离,这些基础概念构成了后端系统的性能基石。结合Redis实现缓存与分布式锁,利用消息队列进行系统解耦与削峰填谷,是应对高并发场景的常见工程实践。随着技术发展,大模型与AI能力正加速融入后端架构,例如通过Spring AI集成智能服务,或利用RAG技术增强业务逻辑。本文聚焦Java后端面试,系统梳理了从JVM调优、并发容

weixin_33695082

基于知识图谱与Qwen-Plus大模型的智能出题系统设计

在在线教育与考试场景中,如何高效生成高质量题目并精准定位学生薄弱知识点,是智能学习平台的核心挑战。知识图谱以图结构描述知识点间的依赖关系,为选题提供语义依据;大语言模型则能根据自然语言指令自动生成题目与解析,大幅降低题库建设成本。两者结合,可实现从“随机抽题”到“依据知识结构智能出题”的升级。本文以智能出题系统为例,设计基于Spring Boot与Neo4j的后端架构,通过Qwen-Plus的OpenAI兼容接口动态生成试题,并结合错题记录计算知识点薄弱度,形成“知识点建模—智能出题—答题—诊断—再出题”的

weixin_34183910

2026金九银十Java后端与AI岗面试攻略:并发、场景题与RAG实战

在技术面试持续演进的当下,Java后端岗位依然是企业级应用的中流砥柱,但面试考察重心已从单纯八股文转向底层原理深度、高并发场景设计以及AI应用落地能力。理解并发编程中的锁机制、线程池调优与JVM排查,是区分候选人的关键分水岭;掌握Redis缓存一致性、分布式场景下的幂等与异步处理,则是应对系统设计的必备技能。随着大模型技术普及,Java工程师更需要理解RAG检索增强生成、Prompt设计、Function Calling等AI应用链路,并将这些能力融入实际业务系统。无论是构建智能文档助手、客服工单系统,还是

weixin_33997389

高校技术转移办公室人员如何精准识别高质量可转化专利?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论 4
收藏 已收藏
分享
返回顶部
Shiitou
Java EE 67,535 成员 225,843 内容