我有一個帶有多個XSD Schema的Spring Boot項目(我正在使用Spring-WS)。如何使用Spring的PayloadValidatingInterceptor驗證多個XSD Schemas
如果我使用Spring的PayloadValidatingInterceptor來驗證請求和響應,它只適用於最新的設置模式。
例如:
public void addInterceptors(List<EndpointInterceptor> interceptors) {
PayloadValidatingInterceptor validatingInterceptor = new PayloadValidatingInterceptor();
validatingInterceptor.setValidateRequest(true);
validatingInterceptor.setValidateResponse(true);
validatingInterceptor.setXsdSchema(getFirstSchema());
validatingInterceptor.setXsdSchema(getSecondSchema());
interceptors.add(validatingInterceptor);
super.addInterceptors(interceptors);
}
這個片段將使得春節驗證只有第二架構,而不是第一個。我試着創建多個PayloadValidatingInterceptors來添加它們與super.addInterceptors(攔截器);但它也沒有工作。唯一的迴應,我能找到(與Java而不是XML),是從2009年:
https://jira.spring.io/browse/SWS-481
有誰知道一個基於Java的解決方案,以驗證在同一項目從多個XSD的請求和響應?
您是否嘗試過使用setXsdSchemaCollection代替setXsdSchema?如果是,那麼出了什麼問題?如果不是,那爲什麼不呢? –
我試過了,但它不起作用。我無法找到使用setXsdSchema的實現示例。該方法要求您實現XsdSchema [] getXsdSchemas()和XmlValidator createValidator(),但我不知道如何實現createValidator()方法。簡單地返回空使得應用程序不可用,並且XmlValidtor不能被實例化。 – facundop