Попытка использовать gSoap с WCF и WSHttpBinding - PullRequest
1 голос
/ 10 ноября 2011

Я пытаюсь использовать библиотеку gSoap для связи с сервером WCF с помощью WSHttpBinding.Кажется, у меня проблема с плагином WS-Addressing для gSoap.Когда я включаю плагин WS-Addressing, с помощью #import "wsa5.h" я больше не могу компилироваться.Теперь в soapC.cpp есть неразрешенные символы.Первая ошибка в soap_getelement (soap *, int *).Ошибка SOAP_TYPE_ wsa5 _IsReferenceParameter.Это моя первая попытка использования gSoap.Любой совет приветствуется.

gSoap Версия 2.8.4

1 Ответ

1 голос
/ 10 ноября 2011

Что вы можете сделать, это добавить часть WSA в файл Typemap, а затем в своей команде wsdl2h указать ее с параметром -t.

т.е.:

wsdl2h -o target.h -t EditedTypemap.dat target.wsdl

Вы можете простоскопируйте стандартный Typemap.dat из вашего каталога gSOAP и отредактируйте его так, чтобы он выглядел следующим образом:

wsa = <http://schemas.xmlsoap.org/ws/2004/08/addressing>

SOAP_ENV__Header =\
#import "wsa.h"\n\
struct SOAP_ENV__Header\n\
{\n\
   mustUnderstand _wsa__MessageID    wsa__MessageID 0;\n\
   mustUnderstand _wsa__RelatesTo *  wsa__RelatesTo 0;\n\
   mustUnderstand _wsa__From *       wsa__From      0;\n\
   mustUnderstand _wsa__ReplyTo *    wsa__ReplyTo   0;\n\
   mustUnderstand _wsa__FaultTo *    wsa__FaultTo   0;\n\
   mustUnderstand _wsa__To           wsa__To        0;\n\
   mustUnderstand _wsa__Action       wsa__Action    0;\n\
};

Затем перезапустите wsdl2h, как я упоминал выше.Надеюсь, что это работает для вас!gSOAP - это отличный инструментарий, к которому нужно привыкнуть.

...