CSI 3540 - Laboratoire 10 * Objectifs - Introduction à la conception de services Web et leurs clients (applications et applications Web) * Exercises 1. Familiarisez-vous avec la compilation et le déploiement d'un service Web. Faites quelques tests avec les clients fournis. 01_motd.jar 2. Vous devez concevoir un service Web permettant d'obtenir le prix d'un titre en bourse et aussi l'assignation d'un nouveau prix. 2.1 Vous devez concevoir ce service. Il y aura une méthode double getPrice(String) et une méthode void setPrice(String,double). Vous devez concevoir l'implémentation de ce service. Utilisez, par exemple, un tableau associatif afin de sauvegarder les valeurs des titres en bourse. Suggestion: développez un programme test afin de valider l'implémentation. 2.2 Produire et déployer le fichier .war. > asadmin deploy stock.war 2.3 Consultez la page du service 3. Vous devez concevoir un client qui permet de lire ou changer le prix d'un titre en bourse. 3.1 Utilisez wsimport afin de générer automatiquement le code du client. 3.2 Concevoir un programme principal pour l'application. Un appel à ( new StockServicee() ).getStockPort() vous donnera une référence vers un objet mandataire. (src/client/Main.java) 3.3 Faites des tests. 4. Vous devez concevoir une application Web (JSPX, par exemple) afin de lire ou changer le prix d'un titre en bourse. 4.1 Répétez les instructions 3.1 et 3.2, dans le répertoire de l'application Web. 4.2 Créez une classe selon le modèle de conception JavaBean. Elle servira d'interface entre JSP et le client du service (revoir les notes du cours sur JSP et JavaBean, si nécessaire) (src/client/StockBean.java) 4.3 Concevez tous les fichiers JSP nécessaires pour lire et changer les informations. Voici des captures d'écran pour vous donner quelques idées. - index.jspx - GetPriceForm.jspx - GetPrice.jspx - SetPriceForm.jspx - SetPrice.jspx 4.4 Visitez la page de l'application. localhost:8080/finance Yassine vous donnera la solution complète à la fin du laboratoire. Tout comme HTTP, les services Web sont sans état. Ainsi, l'example ci-dessous ne fonctionnera que partiellement. Les valeurs enregistrées à l'aide de setPrice ne seront pas sauvegardées! Ainsi, les appels à getPrice retourneront toujours -1, même s'ils étaient précédés d'un appel à setPrice. Voici quelques idées pour ajouter la notion d'état pour la durée d'une session. https://metro.dev.java.net/guide/Maintaining_State_in_Web_Services.html 5. Créez un client Java pour accéder à Google Search (optionnel)!