2009-03-04 13 views
1

Ich muss WS-Adressierung in meinem Soap-Header hinzufügen (ich verwende das Gsoap-Framework). Gibt es eine Möglichkeit, das automatisch hinzuzufügen? Ich habe gsoap Dokumentation nachgeschaut, aber keine Informationen dazu gefunden. So jetzt habe ich manuell hinzugefügt, die WS-Addressing meiner SOAP_ENV_Header wie untengsoap - WS-Adressierungselemente im SOAP-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; 
}; 

gezeigt Aber ich möchte es automatisch erzeugen, da ich einige andere Strukturen auf dem SOAP-Header hinzufügen müssen, die von meinem automatisch generiert werden wsdl/xsd-Dateien.

Dank

Antwort

1

Sie die SOAP_ENV_Header in Ihrem typemap.dat wie so definieren:

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

Dann nutzen wsdl2h mit der Option "-t" angeben, einen externen typemap.dat.

0

Verwenden Sie ws Adressierung pushen für gSoap.