Учитываются ли пространства имен при обращении к мыльному веб-сервису? - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть некоторый существующий код, который использует сторонний клиент SOAP для извлечения данных из другого стороннего веб-сервиса. Когда мы переключились на нового поставщика данных, мы также переключились на их новую конечную точку. Мы обнаружили, что все наши текущие запросы терпят неудачу, и в ответ мы получаем ошибку «Ложная политика».

Я использовал SOAP UI для тестирования нового веб-сервиса и могу успешно получить данные таким образом. Вот почему я сравнил два сообщения мыла и обнаружил, что проблема, скорее всего, связана с URI, используемым для пространства имен мыла.

Code generated soap message
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <Request>
            //...
        </Request>
    </s:Body>
</s:Envelope>

Working message with SOAP UI
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <Request>
            //...
        </Request>
    </soap:Body>
</soap:Envelope>

Единственные различия в этих сообщениях - это префиксы пространства имен и пространство имен мыла (данные внутри тега запроса идентичны). Я хотел бы знать, отклоняет ли этот веб-сервис моё мыльное сообщение исключительно из-за используемого им пространства мыльных имен или что-то еще может вызвать проблемы?

Очевидно, мне, вероятно, понадобится сделать свою собственную реализациюсамому генерировать сообщения мыла, но я все же хотел бы знать, настроен ли веб-сервис на прием сообщений только с этим конкретным пространством имен мыла, или это какая-то другая проблема?

...