求助!!Spring boot 的 RestTemplate把Response对象被转成LinkedHashMap
被调用的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
Java后端面试攻略:从JVM、并发到Spring AI的全栈知识体系构建
Java后端开发的核心在于构建高性能、高可用的分布式系统,这离不开对底层原理的深刻理解。从JVM内存模型与垃圾回收机制,到并发编程中的可见性、原子性与有序性问题,再到MySQL索引优化与事务隔离,这些基础概念构成了后端系统的性能基石。结合Redis实现缓存与分布式锁,利用消息队列进行系统解耦与削峰填谷,是应对高并发场景的常见工程实践。随着技术发展,大模型与AI能力正加速融入后端架构,例如通过Spring AI集成智能服务,或利用RAG技术增强业务逻辑。本文聚焦Java后端面试,系统梳理了从JVM调优、并发容
基于知识图谱与Qwen-Plus大模型的智能出题系统设计
在在线教育与考试场景中,如何高效生成高质量题目并精准定位学生薄弱知识点,是智能学习平台的核心挑战。知识图谱以图结构描述知识点间的依赖关系,为选题提供语义依据;大语言模型则能根据自然语言指令自动生成题目与解析,大幅降低题库建设成本。两者结合,可实现从“随机抽题”到“依据知识结构智能出题”的升级。本文以智能出题系统为例,设计基于Spring Boot与Neo4j的后端架构,通过Qwen-Plus的OpenAI兼容接口动态生成试题,并结合错题记录计算知识点薄弱度,形成“知识点建模—智能出题—答题—诊断—再出题”的
2026金九银十Java后端与AI岗面试攻略:并发、场景题与RAG实战
在技术面试持续演进的当下,Java后端岗位依然是企业级应用的中流砥柱,但面试考察重心已从单纯八股文转向底层原理深度、高并发场景设计以及AI应用落地能力。理解并发编程中的锁机制、线程池调优与JVM排查,是区分候选人的关键分水岭;掌握Redis缓存一致性、分布式场景下的幂等与异步处理,则是应对系统设计的必备技能。随着大模型技术普及,Java工程师更需要理解RAG检索增强生成、Prompt设计、Function Calling等AI应用链路,并将这些能力融入实际业务系统。无论是构建智能文档助手、客服工单系统,还是
高校技术转移办公室人员如何精准识别高质量可转化专利?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。


