PayloadValidatingInterceptor可用于验证必填字段

时间:2014-02-11 06:06:06

标签: spring-ws

我们正在使用PayloadValidatingInterceptor默认实现,但发现它不验证必需的字段。有没有办法使用PayloadValidatingInterceptor验证所需的字段是否也存在。

由于 阿尼尔

1 个答案:

答案 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;
}

但我只是猜测,你应该为更好的答案提供更多背景信息。