SOAP Web Service Tutorials - Herong's Tutorial Examples - Version 5.02, by Dr. Herong Yang
Populating the SOAP Body with Request XML Elements
This section describes steps to populate the SOAP body with Web service request XML elements. envelope.createName() and addBodyElement() methods are needed.
In the previous section, we learned how to create a new empty SOAPMessage object and how to access the SOAP body in the object. Now need to learn how create and add our Web service XML elements in the SOAP body.
As an example, let's try to populate the SOAP body with our "GetSpeech" Web service XML element as described at http://www.xmlme.com/WSShakespeare.asmx?op=GetSpeech:
<GetSpeech xmlns="http://xmlme.com/WebServices"> <Request>string</Request> </GetSpeech>
1. Assuming "request" is the new SOAPMessage object, we need to get hold of the SOAP envelope object and SOAP body object first:
SOAPEnvelope envelope = request.getSOAPPart().getEnvelope(); SOAPBody body = envelope.getBody();
2. Use envelope.createName() to create javax.xml.soap.Name objects to represent the GetSpeech service and parameter element names with the correct namespace:
Name serviceName = envelope.createName("GetSpeech", prefix, uri); Name paramName = envelope.createName("Request", prefix, uri);
3. Create and add a body element to the body with the body.addBodyElement() method:
SOAPBodyElement service = body.addBodyElement(serviceName);
4. Create and add a child element to the body element with the service.addChildElement() method:
SOAPBodyElement param = service.addChildElement(paramName);
5. Then add the text node to the child element:
param.addTextNode("To be, or not to be");
The SOAPMessage object has everything now and is ready to be sent to the service provider URL.
Last update: 2009.
Table of Contents
Introduction to SOAP (Simple Object Access Protocol)
SOAP Message Transmission and Processing
SOAP Message Exchange Patterns
Perl SOAP::Lite - SOAP Server-Client Communication Module
Perl Socket Test Program for HTTP and SOAP
Perl SOAP::Lite for GetSpeech SOAP 1.1 Web Service
Perl SOAP::Lite 0.710 for SOAP 1.2 Web Services
Perl SOAP::Lite 0.710 for WSDL
PHP SOAP Extension Client Programs
PHP SOAP Extension Server Programs
Java Socket and HttpURLConnection for SOAP
►SAAJ - SOAP with Attachments API for Java
SAAJ API 1.3 Classes and Interfaces Overview
SAAJ API and Default Implementation in JDK 1.6.0
SAAJ API Reference Implementation 1.3.4
First SOAPConnection Test Program
Creating SOAPConnection and SOAPMessage Objects
SAAJ SOAPMessage Structure and Classes/Interfaces
►Populating the SOAP Body with Request XML Elements
Don't Use xml* as namespace Prefix
addHeader() - Setting SOAPAction Header Line
Calling GetSpeech SOAP 1.1 with SAAJ
SOAPConstants.SOAP_1_2_PROTOCOL
Calling GetSpeech SOAP 1.2 with SAAJ
SoapUI - SOAP Web Service Testing Tool
WS-Security - SOAP Message Security Extension
WS-Security X.509 Certificate Token