我需要在我的Soap头中添加WS Addressing(我正在使用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 Header添加一些其他结构,这些结构是从我的wsdl / xsd文件自动生成的。
由于
答案 0 :(得分: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\
};
然后使用wsdl2h和选项“-t”指定外部typemap.dat。
答案 1 :(得分:0)
为gSoap使用ws寻址插件。