TP1 Soap
TP1 Soap
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques de Tozeur
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
//annotation @WebService : Définit la classe comme étant un web service, identifié par un
nom
@WebService(serviceName = "HelloExemple1")
public class HelloExemple1 {
//annoatation @WebMethod : Opération proposée par le web service, sous un nom donné
@WebMethod(operationName = "hello")
//annotation @W ebParam ; paramètre de l'opération
public String hello(@WebParam(name = "name") String txt){return "Hello " + txt + " !";}
}
Remarque 2 : Netbeans propose un assistant pour créer des opérations. Pour cela,
passer de la vue Source à la vue Design. :
b) Définir la méthode du service « HelloWS » avec le paramètre “salutation”.
c) Modifier la méthode du service « HelloWS » par le code suivant :
@WebMethod(operationName = "HelloWs")
public String HelloWs(@WebParam(name = "salutation") String salutation) {
return "Ma salutation vaut " + salutation + "!" ;
}
d) Tester Invocation du web service par le navigateur en sélectionnant le projet, et
dans le menu du bouton droit choisir l'action Deploy
e) Sélectionner le web service dans le projet, puis choisir l'action Test Web Service dans le
menu du bouton droit. Le résultat est le suivant :
Method parameter(s)
Type Value
java.lang.String Bonjour
Method returned
java.lang.String : "Hello Bonjour !"
SOAP Request
Remarques :
Glassfish/JAX-WS propose une page résumant les opérations exposées par le service
<?xml version="1.0" encoding="UTF-8"?><S:Envelope
web, et la possibilité de les tester en passant les paramètres éventuels.
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-
WSDL File : c’est un contrat de service accessible par l’url comme dans le cas actuel
ENV="http://schemas.xmlsoap.org/soap/envelope/">
il est suivant : http://localhost:8080/WSExemple1/HelloExemple1?WSDL
<SOAP-ENV:Header/>
<S:Body>
le testeur propose une vue des messages SOAP échangés durant les requêtes
<ns2:hello xmlns:ns2="http://com.Exemple1.Ws/">
comme l’exemple ci-dessous :
<name>Bonjour</name>
</ns2:hello>
</S:Body>
</S:Envelope>
SOAP Response
ini_set('soap.wsdl_cache_enabled', 0);
$wsdl ="http://localhost:8080/WSExemple1/HelloExemple1?WSDL";
$service = new SoapClient( $wsdl );
$res = $service->helloWs(array("salutation" => " Assalem Alaikom"));
echo ( $res->return);
?>
c) Tester le projet ClientphpWSSxemple1
Remarque : il faut activer extension = soap.dll dans le fichier php.ini en éliminant le
caractère : devant la ligne associée
Exercice : Développer un web service nommé «SommeWS» qui calcule la somme de deux
nombres fournis en paramètres en créant deux consommateurs ( java application et php
application)