Ce TP est à rendre pour le 28/10/2014, à 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 le rôle “reporter” à Emmanuel Coquery et à Lionel Medini) contenant:
target
)
L'identifiant du projet forge (e la forme pxxxxxx-nomprojet) est à saisir dans Tomuss, dans l'UE Tiw5 WebServices, dans la case TP3_F
. On fera attention à tagger la révision correspondant au rendu avec le tag TP3
.
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.
Le projet TIW5 2014 Base1) contient à présent un nouveau module services
. On partira de cette nouvelle base pour ce TP.
Créer une classe qui implémente l'interface IVODService
. A cette occasion, on effectuera les modifications nécessaires au package sw.film.vod
(ajout d'entités, de dao, etc). La javadoc de l'interface IVODService
donne des détails concernant le comportement attendu des différentes méthodes.
Ecrire quelques tests unitaires pour vérifier le bon fonctionnement de la classe.
<note tip>Le fichier de configuration persistence.xml
utilise une URL réseau pour la base H2. Cela permet les connexions concurrente. Il faut par contre lancer la base à côté en lançant la console H2 et en se connectant à l'URL spécifiée dans persistence.xml
</note>
Créer une nouvelle servlet pour implémenter le service VODService
du fichier vod.wsdl
2). On utilisera SAAJ pour la (dé)sérialisation des messages SOAP. On séparera le traitement en trois classes:
Tester avec SOAPUI
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. Configurer3) 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 cineservice
. On commentera les différents éléments de configuration (XML, annotations) introduits en expliquant leurs effets.
Tester avec SOAPUI4).
Annoter l'interface IVODService
et la classe qui l'implémente avec @WebService et configurer CXF pour exposer ce service. Le service VODService
de vod.wsdl
doit être correctement implémenté5).
Tester avec SOAPUI6).
Utiliser le plugin CXF wsdl to java pour générer des classes implémentant le service VODService
de vod.wsdl
dans le package sw.film.vod.services.gen
. Implémenter le service en appelant le composant qui implémente l'interface IVODService
et le déployer via CXF.
Tester avec SOAPUI7).
Créer un client en ligne de commande en utilisant un Stub généré via WSDL to Java.