当前位置 博文首页 > 闫玉林的博客:spring cloud微服务接口调用,参数传递失败Requir
有一个spring boot 服务,对外提供查询的接口
另外3个服务分别去调用这个接口
2个tomcat的服务,调用成功
1个jar启动的spring boot服务,调用失败,参数传递不过去
关键报错日志 Required Long parameter 'userId' is not present
,日志截图如下:
接口是通的,但是参数值传递失败,对方只接收到null
值,导致报错提示
FeignClient里面的接口
@RequestMapping(value = "/api/auth/loader/user/loadSystemMenu", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
List<AuthMenuVO> loadSystemMenu(@RequestParam(name = "userId") Long userId, @RequestParam(name = "sysCode") String sysCode);
@RequestMapping(value = "loadSystemMenu")
public List<AuthMenuVO> loadSystemMenu(@RequestParam(name = "userId") Long userId, @RequestParam(name = "sysCode") String sysCode) {
List<AuthMenuVO> menuVOList = authMenuService.getUserMenuBySysCode(userId, sysCode);
return menuVOList;
}
POST
方式,但是调用方使用的是默认的get
方式@RequestParam
注解,这个是get方式需要用到的Long
改为long
,由包装类型改为基本类型,无用@RequestParam
注解去除,不报错了,但是值传不过去post
改为get
,成功spring boot
里的哪些默认配置,限制了POST
方式使用@RequestParam
,后续有时间再深入源码继续测试