S. O. A. P. (1998) |
^ Service Web ^ W3C |
Retour | Home | Contact |
---|
Simple Object Access Protocol. Protocole simple d'accès aux objets.
Définir un protocole standard et léger d'échange d'informations en environnement distribué et décentralisé.
SOAP est constitué de :
L'ensemble de ces éléments exploitent XML.
SOAP peut être potentiellement utilisé au-dessus de divers protocoles, mais l'est généralement au-dessus de HTTP. Il utilise dans ce cas le framework d'extension de HTTP pour ajouter des champs spécifiques à SOAP dans l'en-tête HTTP.
Voici un exemple de message SOAP dans une requête HTTP.
On y reconnaît l'en-tête HTTP étendu
pour SOAP (avec le champ d'en-tête SOAPAction
), l'enveloppe
SOAP (balise SOAP-ENV
),
l'appel de service Web (balise ns1:getRate
)
avec ses paramètres
(deux paramètres via les balises country1
et country2
en l'occurence) :
POST /servlet/rpcrouter HTTP/1.0
Host:www.javarome.net
Content-Type:text/xml;charset=utf-8
Content-Length:494
SOAPAction:""
<?xml version=1.0 encoding=UTF-8 ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Header SOAP-ENV:mustUnderstand="1">
<transaction>
<identifiant>02DF25<identifiant>
<type>2 phase commit</type>
</transaction>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:getRate xmlns:ns1="urn:Exchange"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<country1 xsi:type="xsd:string">USA</country1>
<country2 xsi:type="xsd:string">Germany</country2>
</ns1:getRate >
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
public class Exchange
{
public float getRate (String country1, String country2)
{
// Recherche taux de change dans la base
return rate;
}
}
public class SoapClient
{
public void static main (String[] args)
{
Call call = new Call();
call.setEncodingStyleURI (Constants.NS_URI_SOAP_ENC);
call.setTargetObjectURI ("urn:Exchange");
call.setMethod ("getRate");
Vector params = new Vector();
params.addElement (new Parameter ("country1",
String.class, "USA", Constants.NS_URI_SOAP_ENC); //
2nd param
call.setParams (params);
URL url = new URL ("http://www.exch.com/soap/servlet/rpcrouter");
Response resp = call.invoke (url, "urn:Exchange");
if (! resp.generatedFault())
Object obj = resp.getReturnValue().getValue ();
// Traite le résultat
}
}
SOAP | Version | 1 | Commentaire | |||
---|---|---|---|---|---|---|
Release | 1 | 2 | ||||
Fixpack | ||||||
Domaine | Technologie | Maintenance | ||||
Format de message | Enveloppe | |||||
Règles de codage | Codage des caractères | |||||
RPC | Remote Procedure Call | |||||
Transport | HTTP | Oui | ||||
SMTP | Oui | |||||
JMS | Mis en oeuvre par IBM avec MQSeries |
Retour | Home | Contact |
---|