WS-Addressing

WS-Addressing is a specification that allows Web Services to communicate addressing information. It does this by identifying Web service endpoints in order to secure end-to-end endpoint identification in messages. This allows you to transmit messages through networks that have additional processing nodes such as endpoint managers, firewalls, and gateways. WS-Addressing supports Web Services messages traveling over both synchronous or asynchronous transports.

The WS-Addressing specification requires a WSAReplyTo address—the location to which you want the service to reply.

An optional WSAAction argument allows you to define a SOAP action for instances where transport layers fails to send a message.

The following example illustrates a typical SOAP message using WS-Addressing, implemented in the background by VuGen.

<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
                xmlns:wsa="http://www.w3.org/2004/12/addressing">
    <S:Header>
        <wsa:MessageID>
            http://example.com/SomeUniqueMessageIdString
        </wsa:MessageID>
        <wsa:ReplyTo>
            <wsa:Address>http://myClient.example/someClientUser</wsa:Address>
        </wsa:ReplyTo>
<wsa:Address>http://myserver.example/DemoErrorHandler</wsa:Address>
        </wsa:FaultTo>
        <wsa:To>http://myserver.example/DemoServiceURI</wsa:To>
        <wsa:Action>http://myserver.example/DoAction</wsa:Action>
    </S:Header>
    <S:Body>
         <!-- Body of SOAP request message -->
    </S:Body>
</S:Envelope>

In the following example, the server responds to the interface 212.199.95.138 when it detects Event_1.

web_service_call("StepName=Add_101",
        "SOAPMethod=Calc.CalcSoap.Add",
        "ResponseParam=response",
        "AsyncEvent=Event_1",                "WSAReplyTo=212.199.95.138",
        "WSDL=http://lab1/WebServices/CalcWS/Calc.asmx?wsdl",
        "UseWSDLCopy=1",
        "Snapshot=t1153825715.inf",
        BEGIN_ARGUMENTS,
            "first=1",
            "second=2",
        END_ARGUMENTS,
        BEGIN_RESULT,
            "AddResult=Param_AddResult1",
        END_RESULT,
        LAST);

You can issue WS-Addressing calls in both asynchronous and synchronous modes. To use WS-Addressing in synchronous mode, leave the Async Event box empty in the Transport Layer options. In Script view, remove the AsyncEvent argument. This instructs the replay engine to block script execution until the complete response is received from the server.

For task details, see Send Messages over HTTP/S.

Back to top