Feign 调用API报错'No primary or default constructor found for interface java.util.List'

发布时间 2023-06-09 15:36:50作者: 博客园里的蜗牛

踩坑背景

基于springcloud全家桶的分布式项目,服务之间基于feignclient来调用;上游服务新起了一条API入参List的类型,下游服务在调用的时候一直报错,报错信息No primary or default constructor found for interface java.util.List

排查逻辑

作为一名很菜的老鸟,看到这种报错,也第一时间想到应该是API入参的地方缺少了@RequestBody注解,来定义入参的数据格式是JSON;

  • 检查API入参处是否有@RequestBody --- 排除

不是明显的错误,那只好debug了

  • 根据报错log找到最可能的地方 断点进入 Tomcat 的 ApplicationFilterChain

  • 进入到HttpServlet doPost()方法

  • 进入到FrameworkServlet processRequest() 报错了

  • debug进入

  • 到此 可以看出 是入参实体找不到 映射报错的原因,但是实体类肯定是没有问题的,所以只能是映射参数的地方