Java EE : TP 24.02 et 26.02

Exercice 0.

SVP, terminez votre devoir, il n'y aura plus de délais ! Je viens de constater aujourd'hui (mardi 23.02) que certains continuent à ne pas faire la différence entre les connexions Derby embarqué (Embedded), et basées sur l'architecture client-serveur. Ceci est une question "standard" en examen... Donc, lisez quelque chose si besoin.


Exercice 1. JSF

(Récupération de l'exercice 2 du 10.02)

Cet exercice est piqué sur l'Internet ; je trouve que la documentation officielle de NetBeans offre un exercice en principe raisonnable... On travaillera avec Java Server Faces. Voir aussi cette page.

Concrètement, vous allez travailler sur, comprendre et compléter le projet jsfDemo, accessible depuis le site de NetBeans, mais stocké localement. Le projet complet, pour comparer avec le vôtre, jsfDemoCompleted se trouve également dans mes ressources. Mais d'abord un peu de travail préparatoire, de reconnaissance, sans objectif final.


Exercice 2. REST

(L'exemple sur le Web sur REST ; c'est l'exemple que je voulais vous montrer, mais j'ai eu toute sorte de catastrophes... Donc, j'opte pour la facilité, et je demande à ce que ce soit fait par vous...)

Il s'agite de l'exemple sur la page d'Oracle : http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/RESTfulWebServices/RESTfulWebservices.htm. (Les auteurs de cette page affirment : Time to complete - approximately 30 minutes. Ne soyons pas trop optimistes, mais n'exagérons pas, ce ne sont pas deux semaines !!)

ATTENTION ! Dans le cours je vous propose de télécharger et analyser le projet PlayerServer dans mes ressources. Ceci n'est plus actuel, je l'ai supprimé, vous devez le reconstruire par vos soins, ce qui doit être assez mécanique, toutes les instructions sont là.

A. Décompressez le fichier rest_files.zip, qui contient un script SQL : playerDB.sql. Il vous servira à faire la BD utilisée dans l'exercice. Cette fois vous devez utiliser Derby en mode client-serveur, donc lancez le serveur depuis "services" du NetBeans. J'espère que vous l'avez configuré comme il fallait, sinon, c'est un travail supplémentaire à celui qui l'a négligé. Si ce, qui se déclenche est un serveur jurassique, inclus dans JDK, corrigez votre configuration, cela signifie que vous ne m'avez pas écouté...

Créez la bd playerDB dans votre répertoire par défaut du Derby, vous devez en avoir un, déclaré. Après la création, lancez le script (run) afin de peupler la bd. Ceci est facilement et rapidement fait sous IJ, dans une console. Cependant le site d'Oracle suggère utiliser Netbeans, il faudra jongler entre les volets services et files, afin de créer la base, exécuter le script, et vérifier le contenu. de playerDB. Ceci doit marcher sans problèmes dans les deux cas (avec IJ et avec NB), sinon votre configuration est défaillante. Vous devez voir les tables avec Michael Jordan et autres Schtroumpfs.

B. Créez un nouveau projet (Web application) : PlayerServer et suivez le reste de consignes sur le site d'Oracle. La totalité peut prendre un peu plus de 30 minutes, mais pas beaucoup plus. Il vous sera utile d'apprendre quelque chose sur JNDI : https://fr.wikipedia.org/wiki/Java_Naming_and_Directory_Interface, voir aussi la page d'inépuisable Jean-Michel Doudoux ; la construction des annuaires et services d'adressage vous sera utile aussi en dehors de Java.

ATTENTION !
Le projet tel quel, ne se déploie pas sur toutes les plates-formes, à cause de incompatibilités des versions de Derby (découverte lors de la séance du 2.03.2016 ...). Ne suivez pas mécaniquement les consignes sur le site d'Oracle, mais accessoirement, après la création du projet, ajoutez aux librairies, avant les autres : JDK et GlassFish, les jars avec la connectique Derby : derbyclient.jar, et derbynet.jar. Ceci devrait neutraliser la coquille : "__pm"...

N'oubliez pas, qu'il s'agit d'un Web Service, donc vous devez créer le serveur, mais aussi le client. Ici Netbeans+GlassFish vous aident à faire un client pour tester le service, donc pas beaucoup de travail.
Appréciez l'automatisme de gestion de la base de données...


Solutions (peut-être).

Retour
Semaine suivante