Я заметил, что несколько человек задавали этот вопрос, но я не смог найти удовлетворительного ответа. Я использую gSOAP для создания заглушек c ++ из документа wsdl. Проблема в том, что gSOAP добавляет префикс пространства имен к именам метода мыла при отправке сообщения мыла. Например, он отправляет <ns2:Inform></ns2:Inform>
, когда необходимо отправить <Inform></Inform>
Кто-нибудь знает, как решить эту проблему?
EDIT:
Выбранный ниже ответ сначала не сработал, потому что я использую версию прокси-сервера c ++, но все, что мне нужно было сделать, это создать свой сервисный объект, используя следующий код
exampleSOAPProxy service=exampleSOAPProxy(SOAP_XML_DEFAULTNS,SOAP_XML_DEFAULTNS);
SOAP_XML_DEFAULTNS - вводящее в заблуждение имя, поскольку оно фактически не использует пространство имен по умолчанию для всего, что просто удаляет префиксы пространств имен из элементов и явно добавляет пространство имен к каждому элементу.
При компиляции моего приложения мне нужно было добавить -DWITH_SOAPDEFS_H в мой оператор компиляции / ссылки. Примечание. Мне нужно было создать файл с именем soapdefs.h в / usr / local / include /, потому что он импортируется при установке флага -DWITH_SOAPDEFS_H. Это просто заголовочный файл, который вы используете для добавления включений и объявлений в stdsoap2.h