gsoap - элементы WS-адресации в заголовке SOAP - PullRequest
1 голос
/ 04 марта 2009

Мне нужно добавить WS Addressing в мой заголовок Soap (я использую фреймворк gsoap). Есть ли способ добавить это автоматически? Я просмотрел документацию по gsoap, но не нашел никакой информации по этому вопросу. Итак, сейчас я вручную добавил WS-Addressing в мой SOAP_ENV_Header, как показано ниже

struct SOAP_ENV__Header
{
   mustUnderstand _wsa__MessageID wsa__MessageID 0;
   mustUnderstand _wsa__RelatesTo *wsa__RelatesTo 0;
   mustUnderstand _wsa__From *wsa__From 0;
   mustUnderstand _wsa__ReplyTo *wsa__ReplyTo 0;
   mustUnderstand _wsa__FaultTo *wsa__FaultTo 0;
   mustUnderstand _wsa__To wsa__To 0;
   mustUnderstand _wsa__Action wsa__Action 0;
}; 

Но я бы хотел сгенерировать его автоматически, поскольку мне нужно добавить некоторые другие структуры в заголовок Soap, которые автоматически генерируются из моих файлов wsdl / xsd.

Спасибо

Ответы [ 2 ]

1 голос
/ 30 марта 2010

Вы можете определить SOAP_ENV_Header в вашем typemap.dat следующим образом:

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 с опцией "-t" для указания внешнего typemap.dat.

0 голосов
/ 26 мая 2011

Используйте ws-адресацию для gSoap.

...