This WSDL can then be used by a Web service consumer for generating the proxy classes and invoking the published methods. To create a Web service application, you do not need any knowledge of XML, SOAP, or WSDL. For example, the JADE code for the getClient method is as follows.
getClient(clientName: String): Client;
vars
client : Client;
begin
client := app.myCompany.allClients[clientName];
if client = null then
setError(23, clientName, 'Client does not exist');
endif;
return client;
end;
A sample SOAP message for invoking this method would be as follows.
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:m0="urn:JadeWebServices/WebShop/22/07/03/">
<SOAP-ENV:Header>
<JadeSessionHeader>
<m0:sessionId></m0:sessionId>
</JadeSessionHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:getClient xmlns:m="urn:JadeWebServices/WebShop/22/07/03/">
<m:clientName>Brian Olsen</m:clientName>
</m:getClient>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
A sample SOAP response for this request would be as follows.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xmlns:xsd=http://www.w3.org/2001/XMLSchema
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<JadeSessionHeader xmlns="urn:JadeWebServices/WebShop/22/07/03/">
<sessionId>7cbf601166a9240e</sessionId>
</JadeSessionHeader>
</soap:Header>
<soap:Body>
<getClientResponse xmlns="urn:JadeWebServices/WebShop/22/07/03/">
<getClientResult>
<address1>2834 The Palace</address1>
<address2>San Diego</address2>
<address3>United States of America</address3>
<email>bo@wol.com</email>
<fax>64 2 2930 9393</fax>
<name>Brian Olsen</name>
<phone>1 2 3848 8384</phone>
<webSite>www.wol/olsen.com</webSite>
<allRetailSales>
<RetailSale>
<mySaleItem>
<fullDescription>Live in complete privacy and
luxury miles from civilisation. Land includes
helipad, satellite television and internet
connections.</fullDescription>
<photo>/9j/4AAQSkZJRgABAgAAZABkAAD//gASQWRvYmUgSW1hZ2VSZWFkef/sABFEdWNre
QABAAQAAAAyAAD/7gAOQWRvYmUAZMAAAAAB/9sAhAAIBgYGBgYIBgYIDAgHCAwOCggIC
g4QDQ0ODQ0QEQwODQ0ODBEPEhMUExIPGBgaGhgYIyIiIiMnJycnJycnJycnAQkICAkKC
QsJCQsOCw0LDhEODg4OERMNDQ4Nw/6rwu57t+GlpaWi+CCj8F//2Q==</photo>
<price>6250000.00</price>
</mySaleItem>
<price>6250000.00</price>
<timeStamp>2003-07-22</timeStamp>
</RetailSale>
</allRetailSales>
<myCompany>
<address1>Erewhon House</address1>
<address2>Christchurch</address2>
<address3>New Zealand</address3>
<email>discover@jadeworld.com</email>
<fax>(64) 3 555 1267</fax>
<name>Erewhon Investments Inc</name>
<phone>(64) 3 555 4519</phone>
<webSite>www.jadeworld.com</webSite>
</myCompany>
</getClientResult>
</getClientResponse>
</soap:Body>
</soap:Envelope>
If there is a fault (for example, if there is a version mismatch), the following fault response message is sent.
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Sender</faultcode>
<faultstring>Server Error</faultstring>
<detail>
<tns:faultDetails
xmlns:tns="urn:JadeWebServices/WebShop/22/07/03/">
<errorCode>11009</errorCode>
<errorItem>Version Mismatch</errorItem>
<errorText>
There is a version mismatch for the requested service -
Version requested: urn:JadeWebServices/WebShop/22/07/02/
Current version: urn:JadeWebServices/WebShop/22/07/03/
</errorText>
</tns:faultDetails>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>