Spring-Data-Rest验证器返回500而不是400状态代码

时间:2016-08-02 12:36:11

标签: java spring spring-boot spring-data spring-data-rest

我在项目中使用spring-data-rest,正在考虑引入验证。

我可以通过扩展RepositoryRestConfigurerAdapter手动添加我的验证器,并覆盖configureValidatingRepositoryEventListener来添加我的验证器。

执行验证,但我收到500响应而不是预期的400.

调用堆栈的顶部如下所示:

threw exception [Request processing failed; nested exception is org.springframework.data.rest.core.RepositoryConstraintViolationException: Validation failed] with root cause
org.springframework.data.rest.core.RepositoryConstraintViolationException: Validation failed
at 
org.springframework.data.rest.core.event.ValidatingRepositoryEventListener.validate(ValidatingRepositoryEventListener.java:179) ~[spring-data-rest-core-2.5.2.RELEASE.jar:na]
at 
org.springframework.data.rest.core.event.ValidatingRepositoryEventListener.onBeforeCreate(ValidatingRepositoryEventListener.java:96) ~[spring-data-rest-core-2.5.2.RELEASE.jar:na]

似乎RepositoryRestExceptionHandler handleRepositoryConstraintViolationException方法由于某种原因没有获取异常。

我见过其他类型的约束,例如MongoDB唯一索引约束成功映射到400响应。

任何有关如何解决此问题的想法都将受到赞赏。

0 个答案:

没有答案