1

Soap ヘッダーに WS Addressing を追加する必要があります (gsoap フレームワークを使用しています)。それを自動的に追加する方法はありますか?gsoap のドキュメントを調べましたが、それに関する情報は見つかりませんでした。そのため、以下に示すように、SOAP_ENV_Header に WS-Addressing を手動で追加しました。

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;
}; 

しかし、wsdl/xsd ファイルから自動生成される他の構造体を Soap ヘッダーに追加する必要があるため、自動的に生成したいと考えています。

ありがとう

4

2 に答える 2

1

次のように、typemap.datでSOAP_ENV_Headerを定義できます。

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\
};

次に、オプション「-t」を指定してwsdl2hを使用して、外部typemap.datを指定します。

于 2010-03-30T11:46:46.903 に答える
0

gSoap の ws アドレス指定プラグインを使用します。

于 2011-05-26T06:50:36.597 に答える