3. Le serveur gère à présent les locations immobilières.
Grâce à vos travaux précédents, ajoutez les classes nécessaires à cette gestion.
Pour aérer/découper le code, vous pouvez implémenter le code métier du serveur dans un esclave qui lui-même
utilise une classe de gestion des requêtes.
4. Définissez côté serveur une méthode permettant de renvoyer la liste des locations possibles, et modifiez le client
pour qu’il teste cette méthode.
5. Définissez côté serveur la méthode permettant de renvoyer à un client le tarif quand le client envoie un nom de
lieu, un genre.
modifiez le client pour tester cette méthode.
6. Définir une méthode côté serveur pour renvoyer la moyenne des tarifs par semaine des locations quand un client
le demande (fixez le protocole correspondant à cette demande).
7. Définir des classes exception permettant de gérer les cas d’erreurs (i.e. des exceptions sont retournées par la
classe traitant les requêtes, le serveur gérant l’exception)
8. Définir une méthode côté serveur pour renvoyer le nombre de lieux dont les tarifs par semaine sont compris
entre 100 et 200.
9. Définir les méthodes CRUD de gestion des locations, coté serveur, et tester avec le client.
10. Définir les méthodes CRUD de gestion des réservations pour une location donnée (via son lieu par exemple),
coté serveur, et tester avec le client.
11. Définir une méthode qui teste si une réservation a été faite pour une certain lieu (et testez via un client)
12. Modifiez la méthode précédente pour utiliser un Future, et testez toutes les 10 secondes si le résultat vrai/faux
est obtenu. Utilisez un Callable, et testez si le future est terminé (via une méthode isDone).
13. En supposant que le client envoie 10 lieux dont on veut tester lesquels ont des réservations, utilisez un Com-
pletionService pour récupérer (et afficher) les résultats dès qu’ils sont disponibles.
3.1 Codeurs Pas Peur
1. Remplacez le fichier de tests précédent par un menu de gestion, comme dans l’exercice 2.
4 Persistance XML
Dans cette partie, nous allons utiliser un fichier XML comme base de données des locations
1. A partir du premier projet, ajoutez les annotations JAXB.
2. Dans un terminal, générez le(s) schéma(s) XML avec la commande schemagen. Les documents XML générés
seront valides par rapport à ce(s) schéma(s).
3. Avec netbeans, réalisez l’opération inverses et générez les classes Location(s) et Periode à l’aide d’un "JAXB
Binding".
4. Retrouvez les différences avec le code utilisé dans les exercices précédents, et complétez les classes avec les
méthodes CRUD.
5. Ajoutez et testez les méthodes de lecture/écriture dans un fichier XML d’une location (en liaison avec les
instances de la classe Locations)
6. Créer un fichier XML correct contenant des données initiales d’une location.
7. Testez la lecture de ce fichier pour récupérer la location persistante.
8. Générez une liste de locations et stockez-la dans un fichier XML (via un ObjectFactory).
9. Testez la lecture de ce fichier pour récupérer la liste des locations.
Créer un gestionnaire d’événements (ValidationEvent) pour améliorer la lisibilité des messages d’erreurs.
4.1 Codeurs Pas Peur
1. Implémentez la persistance XML sur chaque méthode de gestion des locations.
5 Journalisation
Dans cette partie, nous allons ajoutons une couche de journalisation pour tracer les comportements de l’application
client/serveur (3). Le but est de créer un fichier de journaux pour les actiosn du client, et un autre pour les actions
du serveurs.
1. Intégrez et configurez la librairie log4j à votre projet Netbeans, disponible à l’adresse : https://lipn.
univ-paris13.fr/~fortier/Enseignement/Lee/librairies/
(Ajoutez le jar en tant que librairie)
2