Closed OPbjO closed 11 months ago
系统提示:您的邮件被腾讯邮箱判定为垃圾邮件,请编辑后重新发送!
您好,我们在ExampleController下的validatePropertyType方法中测试,并没有发现您提供的这个问题,欢迎提供进一步信息帮助排查。
您好,我们在ExampleController下的validatePropertyType方法中测试,并没有发现您提供的这个问题,欢迎提供进一步信息帮助排查。
我测试用的版本是graceful-response 3.1.0,你给的示例代码工程里面用的包是3.2.0-boot2,其中我报错的代码类ValidationExceptionAdvice和3.1.0的版本比较有变化,可能就是因为这个,所以高版本的不会报错。另外目前中央仓库3.2.0-boot2还没有。
@feiniaojin 3.1.0代码: 3.2.0-boot2代码: 处理异常的顺序变了
MethodArgumentNotValidException是BindException的子类
graceful版本:3.1.0
测试代码:
TestController
校验参数对象,其中JobDetail对象进行级联校验
post请求参数
pay最小值为3000,校验失败,抛出MethodArgumentNotValidException,进入com.feiniaojin.gracefulresponse.advice.ValidationExceptionAdvice全局异常处理器。
在com.feiniaojin.gracefulresponse.advice.ValidationExceptionAdvice#fromBindException第118行,使用反射获取校验失败字段时,外部对象持有的内部对象字段报错,所以fieldName=jobDetail.pay,但是target.getClass()获得的是外部对象JobInfoRequest.class,因此无法获取到jobDetail.pay字段,抛出异常NoSuchFieldException。