Клиент веб-сервиса CXF, как обработать ответ от вызываемого веб-сервиса? - PullRequest
0 голосов
/ 17 сентября 2011

Я реализовал клиент веб-сервиса, который используется внутри веб-приложения (с использованием Spring), и этот клиент получает ответ, в котором CXF выдает ошибку, и выдает мне сообщение об ошибке.

Сообщение об ошибке:

Сервер не распознал значение HTTP-заголовка SOAPAction

Я обнаружил проблему, но не знаю, что я могу сделать, чтобы настроить обработку ответов моего веб-сервиса.

Ответ xml ниже работает без проблем.

Работает и принимается нормально!

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bar="http://www.dummyurl.com/service-v1.0/">
    <soapenv:Header/>
    <soapenv:Body>
        <bar:StartSessionResponse>
            <result>1</result>
        </bar:StartSessionResponse>
    </soapenv:Body>
</soapenv:Envelope>

Служба фактически возвращает:

Сбой и выдает ошибку!

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <StartSessionResponse xmlns="www.dummyurl.com/service-v1.0/">
            <result xmlns="">1</result>
        </StartSessionResponse>
    </soap:Body>
</soap:Envelope>

Насколько я вижу, разница в размещении

xmlns = "www.dummyurl.com/service-v1.0/, в успешном xml он находится в конверте, в неудачном xml он находится на метод ответа.

Есть ли способ убедить CXF принять ответ? Или служба возвращает ненормальный результат?

1 Ответ

0 голосов
/ 17 сентября 2011

Служба возвращает неправильный ответ во втором случае, предполагая, что первый ответ является правильным.

В первом случае «www.dummyurl.com/service-v1.0/» - это пространство имен ваших элементов - StartSessionResponse, результат не определен пространством имен. Во втором случае StartSessionResponse имеет то же пространство имен, что и в первом примере, но у результата в целом есть другое пространство имен, если вывести xmlns = "" для результата, то XML будет согласованным.

...