In the following excerpt of a WSDL, at the line
<soap1:operation style="document" soapAction="petition"
what is the difference between specifying
vs
<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>
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.
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.
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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With