Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WSDL binding - soapAction value

In the following excerpt of a WSDL, at the line

<soap1:operation style="document" soapAction="petition"

what is the difference between specifying

  • soapAction="petition"

vs

  • soapAction="/Services/ReincarnationPermitService.serviceagent/ReincarnationRequestPortTypeEndpoint/petition"

<wsdl:service name="ReincarnationPermitService">
    <wsdl:port name="ReincarnationRequestPortTypeEndpoint" binding="tns:ReincarnationRequestPortTypeEndpointBinding">
        <soap1:address location="http://sheol:666/Services/ReincarnationPermitService.serviceagent/ReincarnationRequestPortTypeEndpoint"/>
    </wsdl:port>
</wsdl:service>
<wsdl:portType name="ReincarnationRequestPortType">
    <wsdl:operation name="acceptRequest">
        <wsdl:input message="tns:ReincarnationParticulars"/>
        <wsdl:output message="tns:PetitionResponse"/>
        <wsdl:fault name="denied" message="tns:Rejection"/>
    </wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ReincarnationRequestPortTypeEndpointBinding" type="tns:ReincarnationRequestPortType">
    <soap1:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="acceptRequest">
        <soap1:operation style="document" soapAction="petition" soapActionRequired="true"/>
        <wsdl:input>
            <soap1:body use="literal" parts="ReincarnationParticulars"/>
        </wsdl:input>
        <wsdl:output>
            <soap1:body use="literal" parts="Approved"/>
        </wsdl:output>
        <wsdl:fault name="denied">
            <soap1:fault use="literal" name="denied"/>
        </wsdl:fault>
    </wsdl:operation>
</wsdl:binding>
like image 816
Blessed Geek Avatar asked Feb 12 '15 02:02

Blessed Geek


People also ask

What is SOAPAction in WSDL?

SOAPAction. The SOAPAction header is a transport protocol header (either HTTP or JMS). It is transmitted with SOAP messages, and provides information about the intention of the web service request, to the service. The WSDL interface for a web service defines the SOAPAction header value used for each operation.

What is the value of SOAPAction header?

The SOAPAction HTTP request header field can be used to indicate the intent of the SOAP HTTP request. The value is a URI identifying the intent.

What is binding element in WSDL?

A WSDL binding describes how the service is bound to a messaging protocol, particularly the SOAP messaging protocol. A WSDL SOAP binding can be either a Remote Procedure Call (RPC) style binding or a document style binding. A SOAP binding can also have an encoded use or a literal use.

Is SOAPAction mandatory?

No. The SOAPAction HTTP header is required by SOAP 1.1 and therefore by the WSA. It can be blank or have a value, but the HTTP header has to be there. Also, take a look at the service's WSDL, and if it includes "soapAction" then the client must meet the API's specification.


1 Answers

This is what I have discovered ... so answering my own question.

The soapAction attribute is an indication of intent of the service provider, which is most probably framed by the service framework.

The soapAction helps the service provider to map the soap operation to an intent resolver. Which for any intent and purpose, would be the routine being called to service the operation.

The soapAction attribute is a way for a service provider framework to uniquely identify which entry point or routine to call to service the operation.

Therefore soapAction attribute can be any value, whose pattern may be dictated by the framework. In the framework that I am using, it does not matter to the framework what the value of soapAction is, where soapAction attribute value is simply the reference to the entry point to process the call.

like image 61
Blessed Geek Avatar answered Sep 21 '22 03:09

Blessed Geek