WSDL binding - soapAction value

Blessed Geek picture Blessed Geek · Feb 12, 2015 · Viewed 26.3k times · Source

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>

Answer

Blessed Geek picture Blessed Geek · Feb 18, 2015

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.