Java EE : TP 03.02 et 05.02

Exercice 0.

Votre devoir obligatoire est actuel, pas de nouveaux détails, car vous ne m'avez pas posé des questions méritant une réponse globale. Soyez simples. Si vous voulez ajouter du dynamisme interactif, pouvoir bouger les pièces avec la souris, allez-y, ceci peut vous apporter un bonus, si réalisé correctement. Je vous prie d'inclure dans l'application un "manuel d'utilisation" (une fenêtre secondaire, un pop-up, etc.). Ajoutez également quelques commentaires pertinents dans le code. Si vous me transmettez en vrac quelque chose difficile à apprivoiser et à faire marcher, ceci peut influencer négativement la note, je ne pourrai pas consacrer trop de temps à la correction du devoir...

La date-butoir est à régler. Actuellement, pour figer quelque chose, je propose la fin des vacances d'hiver, disons dimanche 21 février, mais ceci reste négociable. Ceci dit, n'oubliez pas qu'il vous reste encore un devoir, un "Service Web" (jusqu'à la fin du semestre), et que l'on ne rattrape pas les devoirs ratés (et surtout non-rendus...).
N'oubliez pas - je m'adresse à ceux qui ont toujours des problèmes avec Derby - d'installer Java DB chez vous, et de déclarer le gestionnaire comme le service DB officiel du NetBeans. Si je constate que quelqu'un a toujours des défaillances d'accès aux BD, car NetBeans tente de lancer les pilotes inclus dans JDK installé d'office, vous serez obligés de vous débrouiller sans moi, par ex. demander de l'aide à vos collègues qui ont déjà passé cette "maladie enfantine". (Il faut regarder soigneusement les propriétés des services BD, mais aussi ne pas utiliser les Libraries mauvaises).


Les exercices restants c'est de la "gymnastique".


Exercice 1.

Cette tâche ne comporte aucun effort intellectuel. Je vous prie de tester l'exécution et déploiement des projets Java/Web standard (par ex ceux que vous avez déjà terminés) sous GlassFish. Vérifier la configuration, paramétrer l'accès, lire un minimum de documentation. Ce serveur se comporte de manière différente de Tomcat, sa paramétrisation est différente, on créé des "domaines" où on dépose des applis Web ; elles doivent rester sous le contrôle de l'utilisateur, et le serveur lui-même est souvent partagé, intouchable. Mais, franchement, je ne sais pas si la sécurisation de notre réseau ne décide pas de nous rendre la vie difficile, alors il faudra installer GlassFish dans vos ressources, et le brancher dûment à NetBeans.

J'essaierai de vous épargner l'usage de GlassFish, mais il est utile quand nous aborderons les EJB (Enterprise Java Beans), et probablement avec quelques dispositifs de sécurisation.


Exercice 2. Annotations et réflexion...

L'échec en fin du cours, l'impossibilité de compiler le processeur d'annotations, indispensable pour traiter lors de la compilation des annotations avec Retention Policy : SOURCE, était le résultat du changement de la version de Java. Dans la nouvelle version (1.8) le typage de quelques paramètres génériques a été modifié, désolé (la ligne bleue). Voici le code du processeur :

import java.util.*;
import javax.annotation.processing.*;
import javax.lang.model.*;
import javax.lang.model.element.*;
 
@SupportedAnnotationTypes(value= {"*"})
public class TestAnnPro extends AbstractProcessor{
 @Override
 public boolean process(
  Set<? extends TypeElement> annotations, RoundEnvironment env){
   for(TypeElement el : annotations){
     System.out.println("Trouve : " + el.getQualifiedName());
     for(Element quoi : env.getElementsAnnotatedWith(el)){
   }}
  return true;
 }
}
A. Tester la compilation de Annota.java (dans Jspwork/AnnotWork) et comprendre bien ce qui se passe. Les notes du cours ne correspondent pas à la réalité, et seront corrigées, mais pas tout de suite.

B. Coder votre propre processeur d'annotations. Ce sera un travail composite, contenant plusieurs étapes, le processeur c'est la dernière, quand tout autre chose marche.


Exercice 3. Sérialisation...

Rien de compliqué. Utilisez les techniques discutées, ou cherchez quelques autres, et sérialisez vos instances de la classe Fiche. Cette gymnastique vous aidera - peut-être - à trouver des failles dans votre devoir obligatoire, où il faudra sérialiser l'historique et la configuration de l'échiquier. SVP ! : jetez un coup d'oeil sur les textes décrivant le framework Hibernate (par ex., ici). On y reviendra.



Solutions (peut-être).

Retour
Semaine suivante