gsoap - SOAP Header 中的 WS-Addressing 元素
Posted
技术标签:
【中文标题】gsoap - SOAP Header 中的 WS-Addressing 元素【英文标题】:gsoap - WS-Addressing elements in the SOAP Header 【发布时间】:2010-10-11 04:14:21 【问题描述】:我需要在我的 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 文件自动生成的。
谢谢
【问题讨论】:
【参考方案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。
【讨论】:
【参考方案2】:为 gSoap 使用 ws 寻址插件。
【讨论】:
以上是关于gsoap - SOAP Header 中的 WS-Addressing 元素的主要内容,如果未能解决你的问题,请参考以下文章