我们正在使用PayloadValidatingInterceptor默认实现,但发现它不验证必需的字段。有没有办法使用PayloadValidatingInterceptor验证所需的字段是否也存在。
由于 阿尼尔
答案 0 :(得分:0)
据我所知,它应该与配置的XSD文件一起使用。也许您没有在XSD中正确定义字段是强制性的?
也许您错误配置了拦截器。我已经配置了这样一个:
@Bean
public PayloadValidatingInterceptor validatingInterceptor() {
PayloadValidatingInterceptor interceptor = new PayloadValidatingInterceptor();
interceptor.setSchema(messagesXsdResource);
interceptor.setAddValidationErrorDetail(true);
return interceptor;
}
当然它应该被添加为PayloadRootAnnotationMethodEndpointMapping
@Bean
public PayloadRootAnnotationMethodEndpointMapping endpointMapping() {
PayloadRootAnnotationMethodEndpointMapping mapping = new PayloadRootAnnotationMethodEndpointMapping();
mapping.setInterceptors(new EndpointInterceptor[]{
otherInterceptor(),
validatingInterceptor()
});
return mapping;
}
但我只是猜测,你应该为更好的答案提供更多背景信息。