feign调服务参数问题
程序员文章站
2022-07-12 23:27:21
...
遇到个问题,feign调其他服务时报了个错,如下:
Request processing failed; nested exception is java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.msmp.scrm.entity.base.CluePond
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.msmp.scrm.entity.base.CluePond
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
意思大概是说,LinkedhashMap不能强制转换成CluePond对象。为啥会有linkedHashMap对象呢?
核心代码截取:
@FeignClient(name="scrm-base",url="localhost:8080")
public interface BaseService {
@RequestMapping(value = "/public/base/cluePond/saveClue")
public void saveCluePond(@RequestBody Object clue);
}
@RestController
@RequestMapping(value = "/public/base")
public class PublicBaseController {
@Autowired
private CluePondService cluePondService;
@RequestMapping(value = "/cluePond/saveClue")
public void saveCluePond(@RequestBody Object buClue){
cluePondService.save(buClue);
}
}
@Service
public class CluePondService {
public void save(Object buClue) {
cluePond = (CluePond)buClue;//报错地方,强制转换报错
}
}
会出现这个原因,主要是feign传递参数封装时的原因。
@RequestParam 指定的参数会拼接在URL之后,如: ?name=xxx&age=18
@PathVariable 指定的参数会放到一个LinkedHashMap<String, ?>中
@RequestBody 指定对象中的各属性放到一个LinkedHashMap<String,?>中
如以上buClue对象:
上一篇: Nacos—— Raft 如何发布内容
下一篇: libmemcached 0.50 发布
推荐阅读
-
浅谈ElementUI中switch回调函数change的参数问题
-
feign调服务参数问题
-
jQuery hide() 参数callback回调函数执行问题
-
Feign调用服务Session失效问题以及使用RequestContextHolder.getRequestAttributes()获取值为null的问题
-
关于 python gevent 架框 作为 TCP服务器 的 代码问题 , 每个 socket 的 消息 接收 是否有使用 事件监听回调的方法呢?
-
“/”应用程序中的服务器错误。 回发或回调参数无效。在配置中使用 <pages enableEventValidation=“true“/> 或在页面中使用 <%@ Page EnableEventV
-
weblogic 11g StuckThreadMaxTime 问题解决 以及 线程池、数据库连接池参数调优
-
jQuery hide() 参数callback回调函数执行问题
-
Feign调用服务Session失效问题以及使用RequestContextHolder.getRequestAttributes()获取值为null的问题
-
解决SpringCloud Feign传对象参数调用失败的问题