Engineering Full Stack Apps with Java and JavaScript
SOAP based webservices uses a special form of XML called SOAP to exchange messages (requests and responses). SOAP originally stood for Simple Object Access Protocol, but now also called as Service Oriented Architecture (SOA) protocol.
SOAP protocol is based on XML and hence platform independent.
Though HTTP is the most commonly used transport protocol with SOAP-based webservices, it is not limited to just HTTP, but can also use other protocols like SMTP, JMS etc.
SOAP message must NOT contain a DTD reference
SOAP message must NOT contain XML Processing Instructions
Components of SOAP message
A SOAP message is an XML document with following elements:
Envelope element
identifies the XML document as a SOAP message
root element of a SOAP message
Header element
contains header information
If present, it must be the first child element of the Envelope element.
Body element
contains the actual SOAP message (request or response)
Fault element
containing errors and status information
optional element
If present,
it must appear as a child element of the Body element.
can only appear once in a SOAP message.
faultcode values must be used in the faultcode element when describing faults:
VersionMismatch
invalid namespace for the SOAP Envelope element
MustUnderstand
An immediate child element of the Header element, with the mustUnderstand attribute set to "1", was not understood
Client
message was incorrectly formed or contained incorrect information
Server
problem with the server so the message could not proceed.
A SOAP – based web service will expose some operations
A consumer (client) will make a remote procedure call against the service by invoking one of the operations.
The client sends an HTTP request to the web service (provider) and the request body will be a SOAP message.
On the web server side,
the web service provider process the HTTP request with the help of some java libraries,
extract the SOAP envelope,
determine the requested service operation,
invoke the corresponding java method and then
generate an appropriate SOAP message as response and
return it back to the client.
Note:
This message ecxhange pattern (MEP) is called Request-Response.
WSDL is also exchanged as part of every client request. First client requests for the wsdl and get back the wsdl, and then client sends a soap request and gets back a soap response.
Comments
Spelling Mistake in Document
Hi Heartin Sir,
While reading i found a spelling mistake in Document.
Last paragraph, first line.
A good SOA implementation requires easy and platform independen interoperability between \
I think its should be independent.
Thanks
Pushpendra
Thanks for pointing it out.
Thanks for pointing it out.