How to specify WS-Addressing headers in SOAP call using TIBCO BusinessWorks(BW) SOAP Request Response activity?

How to specify WS-Addressing headers in SOAP call using TIBCO BusinessWorks(BW) SOAP Request Response activity?

book

Article ID: KB0089983

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks -
Not Applicable -

Description

Resolution:
Background:
==========
TIBCO BusinessWorks 5.x does not support the WS-Addressing specification.

Environment:
===========
ALL

Resolution:
==========
Steps to pass the headers in SOAP request reply:

1).    Download and import the WS Addressing schema from http://schemas.xmlsoap.org/ws/2004/08/addressing/

2).    Create a “Message” (named wssAddr in the attached project (Filename:WS-Addressing.7z)) with multiple parts (To,From,Action etc.) in your Concrete WSDL (Refer the attached project).

3).    For each parts created in Step 2, refer the respective schema elements from the schema imported in Step 1. For example, refer “To” to “To” schema element from Step 1.

4).    Save the changes.

5).    Open the WSDL and add the header element in “wsdl:input”.

  Example:
Before:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    <wsdl:binding name = "RWSStatusSoap11" type = "tns:Status">
        <soap:binding style = "document" transport = "http://schemas.xmlsoap.org/soap/http"/>
        <wsaw:UsingAddressing wsdl:required = "true"/>
        <wsdl:operation name = "RWSStatusRequest">
            <soap:operation soapAction = ""/>
            <wsdl:input name = "RWSStatusRequest">
                <soap:body use = "literal"/>                        
            </wsdl:input>
            <wsdl:output name = "RWSStatusResponse">
                <soap:body use = "literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

After:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    <wsdl:binding name = "RWSStatusSoap11" type = "tns:Status">
        <soap:binding style = "document" transport = "http://schemas.xmlsoap.org/soap/http"/>
        <wsaw:UsingAddressing wsdl:required = "true"/>
        <wsdl:operation name = "RWSStatusRequest">
            <soap:operation soapAction = ""/>
            <wsdl:input name = "RWSStatusRequest">
                <soap:body use = "literal"/>                        
                <soap:header message = "tns:wssAddr" part = "Action" use = "literal"/>                
                <soap:header message = "tns:wssAddr" part = "MessageId" use = "literal"/>                
                <soap:header message = "tns:wssAddr" part = "To" use = "literal"/>                
                <soap:header message = "tns:wssAddr" part = "ReplyTo" use = "literal"/>                
                <soap:header message = "tns:wssAddr" part = "From" use = "literal"/>  
            </wsdl:input>
            <wsdl:output name = "RWSStatusResponse">
                <soap:body use = "literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

6). Use the changed WSDL in your SOAP Request Reply and specify the headers in the input.

Attachments:
===========
WS-Addressing

Issue/Introduction

How to specify WS-Addressing headers in SOAP call using TIBCO BusinessWorks(BW) SOAP Request Response activity?

Attachments

How to specify WS-Addressing headers in SOAP call using TIBCO BusinessWorks(BW) SOAP Request Response activity? get_app