簡體   English   中英

如何使用注釋在 SOAP Spring Web 服務中驗證請求

[英]How to validate request in SOAP Spring Web Services using annotations

我使用 SpringBoot 開發了 SOAP web 服務,並希望使用基於注釋的方法驗證我的請求參數,如空、長度、最小值、最大值等,並希望向客戶端返回適當的錯誤消息。

我嘗試使用帶有 @Valid 注釋和自定義異常處理程序的休眠驗證器,但它似乎不適用於 SOAP 服務。 它適用於 REST 服務。

您能否建議我們如何在 SOAP 服務中實現這一點。

在開發 SOAP 服務時,通常使用 XSD 模式完成驗證。 但是如果你喜歡使用 Bean Validation,你總是可以手動觸發它。 大致是這樣的:

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);
        }
    }
}

將您需要的驗證注釋( @NotEmpty等)放在 class 的實例字段上。

public class MyDTO extends SelfValidating<MyDTO> {
}

然后,您可以通過在您喜歡的任何地方調用myDTO.validate()來觸發驗證,並在全局異常處理程序中處理異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM