Создайте сервис SOAP с помощью Spring-ws и пропустите проверку тела - PullRequest
0 голосов
/ 24 апреля 2019

Я создал веб-сервис SOAP с spring-ws 3.0.6 из схемы, в которую я хочу поместить любые структурированные данные. Проблема в том, что при вызове сервиса из SOAPUI он не принимает произвольный xml из произвольного пространства имен.

xsd, из которого создается WS:

    <xsd:complexType name="SD">
        <xsd:sequence minOccurs="0" maxOccurs="1">
            <xsd:any namespace="##any" processContents="lax" />
        </xsd:sequence>
    </xsd:complexType>

Я попытался отключить проверку запроса:

         PayloadValidatingInterceptor validatingInterceptor = new CustomValidationInterceptor();
        validatingInterceptor.setValidateRequest(false);
        validatingInterceptor.setValidateResponse(false);
        validatingInterceptor.setXsdSchema(new SimpleXsdSchema(new ClassPathResource("schema/noValidation.xsd")));
        validatingInterceptor.setXsdSchema(starConnectSchema());

Но при вызове внутри любого тега он дает:

ERROR:  'The prefix "msg" for element "msg:Message" is not bound.'
2019-04-24 12:22:50.736 ERROR 18324 --- [nio-9002-exec-3] com.sun.xml.messaging.saaj.soap          : SAAJ0511: Unable to create envelope from given source

Если я добавлю элемент без префикса, он будет работать. Это до моего PayloadValidatorInterceptor. Любой намек? Заранее спасибо.

...