У меня есть приложение, которое реализует связь с несколькими серверами. Я использую мыло для генерации моего запроса.
Чтобы предотвратить конфликт между разными ссылками мыла, я использую пространство имен.
Я сгенерировал мои файлы с
wsdl2h -t /path/to/gsoap/typemap.dat namespace1.wsdl
soapcpp2 -C -L -qnamespace1 element1.h
Как показано в документации (19.39 Как построить клиент или сервер в пространстве имен кода C ++), я также генерирую файлы с помощью env.h. Мой файл env.h пуст.
soapcpp2 -penv env.h
Я добавил разные файлы в мой проект (Qt):
- element1C.cpp
- element1Client.cpp
- envC.cpp
- element1H.h
- element1Stub.h
- envH.h
- envStub.h
У меня нет проблем с генерацией моего запроса.
Моя проблема, когда я хочу получить параметр "fault" или "header" объекта мыла. У меня ошибка:
.. / GSoap / main.cpp: 103: 27: ошибка: доступ члена к неполному типу
'struct SOAP_ENV__Header'
.. / GSoap / main.cpp: 104: 45: ошибка: доступ члена к неполному типу 'struct SOAP_ENV__Fault'
Это мой код:
#include "elemen1H.h"
#include "envH.h"
using namespace namspace1;
int main(int argc, char *argv[])
{
soap soapObj;
soap_init(&soapObj);
// ******* Opération
_ns1__Subtract inSubtractParam;
...
inSubtractParam.soap = &soapObj;
_ns1__SubtractResponse outSubtractParam;
outSubtractParam.soap = &soapObj;
soap_call__ns1__Subtract(&soapObj, NULL, NULL, &inSubtractParam, outSubtractParam);
if(soapObj.fault) {
SOAP_ENV__Fault *fault = soapObj.fault;
...
}
...
return 0;
}
Я не понимаю, в чем проблема.
Спасибо за вашу помощь