Удаление пространства имен из запроса SOAP
Я импортировал WSDL и использую его для отправки запроса SOAP. Это выглядит так:
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<Calculate xmlns="urn:xx.WSDL.xxxxxWebService">
<ContractdocumentIn>
<AL>
...More XML...
Проблема заключается вxmlns="urn:xx.WSDL.xxxxxWebService"
часть в элементе Calculate. Веб-сервис не может принять это. Веб-сервису не нравятся такие пространства имен ...
С помощьюSoapUI Я нашел этот запрос, чтобы работать просто отлично:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:col="http://example.com.service.xxx/">
<SOAP-ENV:Body>
<col:Calculate>
<ContractdocumentIn>
<AL>
...More XML...
Итак, как мне изменить запрос с первой версии на вторую? (Без использования подвохов!)
(Повторный импорт не является проблемой, если это приведет к правильному формату запроса.)
Опять же: недопустимые хитрости, такие как взлом потока запросов для его изменения!
И хотя я еще не полностью протестировал его, похоже, что C # / VS2010 и Delphi 2010 также не могут использовать веб-сервис, который я пытаюсь вызвать. Веб-сервис, который, кажется, написан на Java.SoapUI случайно написано на Java, таким образом, у нас есть Java-клиент, говорящий с Java-сервисом, который, кажется, работает нормально. Но любой другой клиент?
В любом случае, пришло время добавить еще два тега: «Java», поскольку это сервис Java, и «vs2010», потому что .NET также не нравится этот сервис.
И я собирался написать обертку вокруг этого сервиса в .NET, надеясь, что это сработает ... Это не так. Так что это очень серьезный недостаток, возможно, недостаток Java ...