Servlets

  1. Lire l'énoncé en html ou en pdf  (l'étape intermédiaire sur "Application Distribuée" peut aider à une meilleure compréhension des évolutions apportées)
  2. Télécharger l'archive des classes de l'application fournies et les classes de test représentant la recette utilisateur et dézipper cette archive dans un nouveau répertoire
    (Note : si vous travaillez sur Linux, il vous faudra modifier les infos d'accès à la BD; pour cela vous pouvez télécharger puis exécuter le script updateDBuser.sh)
  3. Créer un projet avec Eclipse (ou un autre IDE de votre choix)
  4. Mettre au point la classe Address (package com.yaps.petstore.server.domain) en la testant à l'aide du test unitaire CustomerTest fourni
  5. Définir la classe AdressDTO dans le package com.yaps.petstore.common.dto (cette classe est un DataTransfertObject associé à la classe Address)
  6. Définir la servlet CreateCustomerServlet dans le package com.yaps.petstore.web.servlet; cette servlet va récupérer les données du formulaire createcustomer.html et faire  les traitements conformément au diagramme de séquence "Séquence d'appel entre la page statique et les deux servlets" de la figure 11
  7. Réinitialiser la base de données petstoreDB (avec phpMyAdmin ou gradle create_db) et peupler la base de données :  gradle populate_db 
  8. Construire l'aplication :  gradle assemble
  9. Déployer l'application dans TomCat : gradle deploy (requiert d'avoir défini la variable d'environnement TOMCAT_HOME)
  10. Lancer Tomcat - dans une nouvelle fenêtre de commande exécuter:
    > cd  $TOMCAT_HOME/bin
    > startup
  11. Lancer les tests web en exécutant la classe AllTests du sous projet tp06-webYaps depuis Eclipse ou par gradle myWebTest
  12.  Une fois l'application mise au point, relancer les tests de la manière suivante à partir du répertoire racine : gradle mark
    (vérifier le contenu du fichier TP06.html et) envoyer le fichier résultat TP06.test au système de test  (exemple d'utilisation).
  13. Une fois disponible, télécharger le corrigé du TP.

Quelques indications supplémentaires :

  1. Pour simplifier votre travail, le code fourni n'utilise pas RMI; les schémas d'architecture (figure 12 et 13) sont donc simplifiés.
    En conséquence, la servlet CreateCustomerServlet va pouvoir utiliser un CustomerDelegate  récupéré par le code suivant:
    CustomerDelegate cd = new CustomerDelegateFactory().createCustomerDelegate();
  2. La servlet CreateCustomerServlet peut déléguer l'affichage des erreurs à la servlet ErrorServlet en utilisant un code de cette forme :
    getServletContext().getRequestDispatcher("/error?exception=Customer Id already exists").forward(request, response);