The term "Web services" can apply to a number of different ways of sending information back and forth. However, this guide focuses on the sending and receiving of SOAP messages. SOAP messages are XML documents that consist of an "envelope" containing a "payload" (see Code Listing 4).
<?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/03/addressing"> <env:Header> <wsa:MessageID> http://ws.apache.org/9C21DE32-DB42-1228-C42E-66CB101421AD </wsa:MessageID> <wsa:ReplyTo> <wsa:Address>http://example.com/projects/clientApp</wsa:Address> </wsa:ReplyTo> <wsa:To>http://example.com/axis2/publishingService</wsa:To> <wsa:Action>http://example.com/axis2/addDocument</wsa:Action> </env:Header> <env:Body> <addDocument> <docTitle>What I Did On My Summer Vacation</doctitle> <docSubtitle>Children's Essays from Accross the World</docSubtitle> <docLocation>contentRepos/summerVac.doc</docLocation> </addDocument> </env:Body> </env:Envelope>
This XML document consists of the outer element or the SOAP Envelope, and its contents. The SOAP Envelope is in the SOAP namespace, http://www.w3.org/2003/05/soap-envelope, prefixed as env: and contains up to two children. This envelope is a standard format that pertains to every single SOAP message sent and received by any SOAP Web service.
The contents of the Envelope consists of two parts; the first being the SOAP headers-the contents of the env:Header element. These headers, such as the WS-Addressing elements shown here, provide additional information about the message and how it should be handled. A SOAP message may carry headers relating to several aspects of the message, or it may carry no headers at all. These headers are typically processed by the message handlers.
The second and arguably the most important part of the message is the payload, which consists of the contents of the env:Body element. This is the actual message intended for the receiver, and it is the information that the main application will ultimately process.
Although all SOAP messages carry the same structure, the ways in which they are used can be combined into a number of different "message exchange patterns", or MEPs. The two major message exchange patterns are:
Within these two MEPs, you also have several variables to consider:
Taking all these options into consideration, you can create virtually any MEP. For example, you can create an Out-Only system by reversing roles for the In-Only MEP. Apache Axis2 also includes support for less prominent MEPs, such as Robust-In-Only.
See Next Section - Creating Clients