Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用注释验证SOAP Spring Web服务中的请求_Java_Spring Boot_Soap - Fatal编程技术网

Java 如何使用注释验证SOAP Spring Web服务中的请求

Java 如何使用注释验证SOAP Spring Web服务中的请求,java,spring-boot,soap,Java,Spring Boot,Soap,我已经使用SpringBoot开发了一个SOAP web服务,希望使用基于注释的方法验证我的请求参数,如empty、length、min、max等,并希望向客户端返回适当的错误消息 我尝试使用带有@Valid注释和自定义异常处理程序的hibernate validator,但它似乎不适用于SOAP服务。休息服务很好用 您能否建议我们如何在SOAP服务中实现这一点。在开发SOAP服务时,通常使用XSD模式进行验证。但是,如果您喜欢使用Bean验证,您总是可以手动触发它。大概是这样的: public

我已经使用SpringBoot开发了一个SOAP web服务,希望使用基于注释的方法验证我的请求参数,如empty、length、min、max等,并希望向客户端返回适当的错误消息

我尝试使用带有@Valid注释和自定义异常处理程序的hibernate validator,但它似乎不适用于SOAP服务。休息服务很好用


您能否建议我们如何在SOAP服务中实现这一点。

在开发SOAP服务时,通常使用XSD模式进行验证。但是,如果您喜欢使用Bean验证,您总是可以手动触发它。大概是这样的:

public abstract class SelfValidating<T> {
    private final Validator validator;

    public SelfValidating() {
        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
        validator = factory.getValidator();
    }

    public void validate() {
        Set<ConstraintViolation<T>> violations = validator.validate((T) this);
        if (!violations.isEmpty()) {
            throw new MyValidationException(violations, (MyDTO) this);
        }
    }
}

然后,您可以通过调用
myDTO.validate()
来触发验证,并在全局异常处理程序中处理异常。

谢谢Ramin。我试过了,效果很好。
public class MyDTO extends SelfValidating<MyDTO> {
}