新司机注册代码和老师的一样,但是发起feign请求时,客户端接收不到参数,实体类里参数值都为null
来源:3-7 小程序获取用户微信简介,实现司机注册
曹学习
2022-11-10
feign的客户端(bff-driver)
@FeignClient(value = "hxds-dr")
public interface DrServiceApi {
@PostMapping("/driver/registerNewDriver")
public R registerNewDriver(@RequestBody RegisterNewDriverForm form);
}
@RestController
@RequestMapping("/driver")
@Tag(name = "DriverController", description = "司机模块Web接口")
public class DriverController {
@Resource
private DriverService driverService;
@PostMapping("/registerNewDriver")
@Operation(summary = "新司机注册")
public R registerNewDriver(@RequestBody @Valid RegisterNewDriverForm form) {
long driverId = driverService.registerNewDriver(form);
//在SaToken上面执行登陆,实际上就是缓存userId,然后才有资格拿到令牌
StpUtil.login(driverId);
//生成Token令牌字符串(已加密)
String token = StpUtil.getTokenInfo().getTokenValue();
return R.ok().put("token", token);
}
}
@Service
public class DriverServiceImpl implements DriverService {
@Resource
private DrServiceApi drServiceApi;
@Override
@Transactional
@LcnTransaction
public long registerNewDriver(RegisterNewDriverForm form) {
R r = drServiceApi.registerNewDriver(form);
long userId = Convert.toLong(r.get("userId"));
return userId;
}
}
feign的服务端
@RestController
@RequestMapping("/driver")
@Tag(name = "DriverController", description = "司机模块Web接口")
public class DriverController {
@Resource
private DriverService driverService;
@PostMapping("/registerNewDriver")
@Operation(summary = "新司机注册")
public R registerNewDriver(@Valid @RequestBody RegisterNewDriverForm form) {
Map param = BeanUtil.beanToMap(form);
String userId = driverService.registerNewDriver(param);
return R.ok().put("userId", userId);
}
}
报错如下(服务端hxds-dr)
2022/11/10 10:29:22 ERROR 执行异常
org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 3 errors
Field error in object ‘registerNewDriverForm’ on field ‘photo’: rejected value [null]; codes [NotBlank.registerNewDriverForm.photo,NotBlank.photo,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [registerNewDriverForm.photo,photo]; arguments []; default message [photo]]; default message [photo不能为空]
Field error in object ‘registerNewDriverForm’ on field ‘nickname’: rejected value [null]; codes [NotBlank.registerNewDriverForm.nickname,NotBlank.nickname,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [registerNewDriverForm.nickname,nickname]; arguments []; default message [nickname]]; default message [nickname不能为空]
Field error in object ‘registerNewDriverForm’ on field ‘code’: rejected value [null]; codes [NotBlank.registerNewDriverForm.code,NotBlank.code,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [registerNewDriverForm.code,code]; arguments []; default message [code]]; default message [code不能为空]
2回答
-
我也有遇到这个错误,不知道和你的情况是否一样,我是注解引用的时候引用错了,@RequestBody应该引用
import org.springframework.web.bind.annotation.RequestBody;
引用成swagger的那个就接收不到参数了。
012023-05-05 -
神思者
2022-11-10
你先给bff子系统的web方法设置断点,看一下调用司机子系统之前有没有接收到小程序提交的数据
042022-11-15
相似问题
回答 1
回答 1