Servlets
- 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)
- 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)
- Créer
un projet avec Eclipse (ou un autre IDE de votre choix)
- Mettre au point la classe Address (package
com.yaps.petstore.server.domain) en la testant à l'aide du
test unitaire CustomerTest fourni
- Définir la classe AdressDTO dans le
package com.yaps.petstore.common.dto (cette classe est un
DataTransfertObject associé à la classe Address)
- 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
- Réinitialiser la base de données petstoreDB (avec phpMyAdmin ou gradle create_db) et peupler la base de données : gradle populate_db
- Construire l'aplication : gradle assemble
- Déployer l'application dans TomCat : gradle deploy (requiert d'avoir défini la variable d'environnement TOMCAT_HOME)
- Lancer Tomcat - dans une nouvelle fenêtre de commande exécuter:
> cd $TOMCAT_HOME/bin
> startup
- Lancer les tests web en exécutant la classe AllTests du sous projet tp06-webYaps depuis Eclipse ou par gradle myWebTest
- 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).
- Une fois disponible, télécharger
le corrigé du TP.
Quelques indications
supplémentaires :
- 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();
- 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);