[英]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.