解决 Spring Boot 调用 Feign 报错 java.lang.String cannot be cast to java.lang.Integer

一、问题描述

在业务层进行 Feign 调用:
在这里插入图片描述

Feign 对应的方法:
在这里插入图片描述
然后访问路径:
在这里插入图片描述

在这里插入图片描述
可以看到,响应数据是 500 状态码,Feign 调用出现了问题,再看控制台的报错:
在这里插入图片描述
主要原因是 java.lang.String cannot be cast to java.lang.Integer,但是这个 decrMap ,从开篇第一张图可以看到,value 确实是 Integer 啊。

进行debug, 发现 在业务层调用 feign 之前,参数还是 Integer 的:
在这里插入图片描述
     但是用 Feign 调用后,就都变成 String 了(想想也是,毕竟 Feign 走的是 Http 协议,参数是 String 才是符合常理的,能识别到 Map 类型就不错了,Map 的 Value 应当都是按照 String 处理的)

二、解决方法

    涉及 Feign 调用,Map 的 key 和 value 都建议使用 String 类型,到了具体的方法中再转化成数值类型。
在这里插入图片描述
在这里插入图片描述


版权声明:本文为weixin_41750142原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。