Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
enseignement:tp:sw:fournisseur:2013 [2013/09/28 09:18]
ecoquery [Implémentation en servlet]
enseignement:tp:sw:fournisseur:2013 [2013/10/09 05:49] (Version actuelle)
ecoquery [Rendu]
Ligne 1: Ligne 1:
 ====== Implémentation de services ====== ====== Implémentation de services ======
  
-** Sujet en cours d'élaboration **+==== Errata ==== 
 + 
 +  Lire  "@return false si **la livraison de** la commande avait déjà été confirmée" dans le descriptif de la méthode ''livraisonEffectuee'' 
 +  * Le projet forge inf2018m-2013-base a été mis à jour avec une nouvelle version de {{:enseignement:tp:sw:fournisseur:livraisons.wsdl|livraison.wsdl}} pour permettre le chargement dans SOAPUI. A noter que le point d'accès est à modifier après coup. 
  
 ===== Modalités ===== ===== Modalités =====
 +==== Rendu ====
 +
 +Ce TP est à rendre pour le **16/10/2013**, à raison d'un rendu par binôme. Le rendu se fera par l'intermédiaire d'un projet forge (on fera attention a bien donner au moin le rôle "reporter" à Emmanuel Coquery et à Lionel Medini) contenant:
 +    * le projet maven mis à jour par vos soins (//**sans**// le répertoire ''target'')
 +    * un fichier README.txt contenant au moins les noms, prénoms et numéros d'étudiants du binôme/trinôme. Toute autre information à transmettre aux enseignants (e.g. justifications de choix techniques) se fera dans ce fichier.
 +
 +L'identifiant du projet forge (e la forme pxxxxxx-nomprojet) est à saisir dans [[http://tomusss.univ-lyon1.fr|Tomuss]], dans l'UE Tiw5 WebServices, dans la case ''FORGE_TP3''. On fera attention à [[http://mercurial.selenic.com/wiki/Tag|tagger]] la révision correspondant au rendu avec le tag ''TP3''
 +
 +Les binômes rendant le TP avant le 10/10/2013 à 23h59 (date de la révision taggée ''TP3'' faisant fois) bénéficieront d'un bonus de 3 points sur la note de ce TP.
  
 +Il est demandé à ce que les 4 implémentations du service (servlet, @WebServiceProvider et @WebService et code généré) puissent fonctionner simultanément (sur des URL différentes). Le fichier de test SOAPUI devra comporter des //test suites// pour les 4 URL points d'accès.
 ===== Métier ===== ===== Métier =====
  
Ligne 21: Ligne 35:
     * appellera les bonnes méthodes métier     * appellera les bonnes méthodes métier
   * La classe écrite précédement pour effectuer le traitement métier.   * La classe écrite précédement pour effectuer le traitement métier.
 +
 +Tester avec SOAPUI
 ===== Implémentation via @WebServiceProvider ===== ===== Implémentation via @WebServiceProvider =====
  
 +Modifier le contrôleur précédent pour qu'il puisse être annoté via @WebServiceProvider. Le choix est laissé libre entre un traitement du message SOAP complet ou un traitement direct au niveau du PAYLOAD. Configurer((ce qui veut dire également ajouter les bonnes dépendances dans le pom)) la servlet CXF pour exposer le contrôleur comme une service implémentant le service précédent. On pourra s'inspirer de la configuration du module ''wine-service''. On commentera les différents éléments de configuration (XML, annotations) introduits en expliquant leurs effets.
 +
 +Tester avec SOAPUI((il est possible d'utiliser les tests précédents en changemant le point d'accès)).
 ===== Implémentation via @WebService ===== ===== Implémentation via @WebService =====
 +
 +Annoter l'interface ''ILivraison'' et la classe qui l'implémente avec @WebService et configurer CXF pour exposer ce service. Le service ''LivraisonService'' de ''livraisons.wsdl'' doit être correctement implémenté((seul le point d'accès peut changer)).
 +
 +Tester avec SOAPUI((il est possible d'utiliser les tests précédents en changemant le point d'accès)).
  
 ===== Génération de code ===== ===== Génération de code =====
 +
 +Utiliser le plugin CXF [[http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html|wsdl to java]] pour générer des classes implémentant le service ''LivraisonService'' de ''livraisons.wsdl'' dans le package ''sw.wine.livraison.gen''. Implémenter le service en appelant le composant qui implémente l'interface ''ILivraison'' et le déployer via CXF.
 +
 +Tester avec SOAPUI((il est possible d'utiliser les tests précédents en changemant le point d'accès)).
  
 ===== Stub Client ===== ===== Stub Client =====
 +
 +Créer un client en ligne de commande en utilisant un Stub généré via WSDL to Java.