Introduction
Dans ce cours nous allons étudier le développement d'applications web à l'aide de la technologie JavaEE. Nous verrons au passage l'utilisation de JSF2/EJB/JPA.
Les logiciels utilisés seront Netbeans et le serveur d'application d'Oracle Glassfish.
Supports de cours
- Autres ressources intéressantes :
- Démonstrations / projet netbeans illustrés en cours :
- exemple de gestion de login/password avec SessionScoped, celui présenté dans le cours. : JSFLoginPassword 2.zip
- exemple de Stateful Session bean (un compteur) utilisé avec une Servlet, un client stand alone et un backing bean et une page JSF: TestStateful.zip et TestStatefulRemoteClient.zip
- exemple d'utilisation d'un EJB @Singleton, @Startup pour initialiser une base de données automatiquement au déploiement : TP3SupraRapidos.zip
- Affichage de messages JSF : ici un fichier utilitaire à rajouter à vos projets, pour faciliter l'affichage de tout type de message : Util.java
Quelles versions de GlassFish / Netbeans utiliser ?
La version 4.1.1 a tous les Web Services du serveurs concernant l'administration de cassés. Je vous conseille très fortement d'utiliser la version 4.1 avec NetBeans 8.0.2, et d'éviter la version 8.1. Ou bien, si vous utilisez la version 8.1, n'utilisez pas le glassfish qui vient avec mais le 4.1 ou la version open source de Glassfish intitulée Payara, elle s'installe et s'utilise exactement comme GlassFish.
FAQ sur les erreurs les plus courantes avec JSF 2 et les solutions
FAQ sur les erreurs les plus courantes avec Glassfish 3.x / Netbeans 7.x
MINI PROJET CRM à voir avec M.Winter
- Ici archive du début du projet, fait en cours : CRM2016.zip
- Pour le lancer : a) Créer une base de données, b) supprimer les fichiers persistence.xml et sun-resources.xml, d) click droit sur le projet en forme de grain de café (projet EJB) et faire nouveau/persistence/creer unité de persistence ou "new persistence unit", indiquer "new data source" ou "nouvelle source de données", choisir votre BD, mettre en drop and create, e) renommer le fichier glassfish-resources.xml en sun-resources.xml, f) chercher dans les EJBs sessions @PersistenceContext(name = ...) et supprimer les parenthèses et ce qu'il y a dedans (ne garder que @PersistenceContext), g) faire "clean and build" et lancer.
Mini projet pour le MBDS
Important:
- assurez-vous de ne pas être avec GlassFish 4.1.1 qui est très buggé. Regardez la section "Quelle version de GlassFish / NetBeans" utiliser au début de la page.
- Regardez bien les videos qui sont sur les pages des TPs 3 et 4 elles vous machent le travail
Sujet: faites fonctionner les TP3 et TP4 ci-dessus. Etudiez les vidéos qui ont été fournies et qui marchent bien en NetBeans 8.02/GlassFish 4.1. En vous inspirant du TP4, vous ferez un outil pour gérer un tableau de tâches dans un projet. Vous aurez une table des taches et une table des personnes. On pourra affecter une tache à une personne, une tache pourra être "non attribuée", "en cours" ou "complète". On pourra dans le tableau cocher une case pour modifier le statut d'une tâche. Il faudra pouvoir saisir une nouvelle tâche ou supprimer une tâche dans le tableau.
Contraintes:
Modalités de remise:
- Projet en binôme
- Date de rendu : le 5 Décembre, je vous convoquerai pour vous voir un par un, ou bien je passerai vous voir en classe, je réserverai un créneau pour cela.
- Faire une archive du projet avec Readme.txt, screenshots et explications.
TP4 à rendre Le 1/12 pour le Master NTDP de Casablanca
C'est Sara qui me mailera une invitation pour le dossier dropbox qui contiendra tous les projets. Chaque projet devra tenir dans un zip qui portera le nom du binome (exception: le trinome avec la Asmaae). Dans le zip: un readme avec points forts, points faibles, les logins et passwords à utiliser etc. Si vous utilisez des trucs pris sur le web ou sur d'autres groupes, il est obligatoire de le signaler dans le README en donnant les URLs et les raisons pour lesquelles vous avez pris ces trucs.
Si votre projet est bien, beau, ergonomique: faites une vidéo YouTube et donnez-moi l'URL, ça servira pour les générations futures et pour vos entretiens d'embauche!
Travail à faire: voir le sujet ci-dessous. C'est en gros le TP4 mais on l'a fait partiellement en cours + dans les vidéo de Live Coding (voir section du TP3 spécial Casa avec les URLs des videos + le zip du projet).
TP4 à rendre Le 2/11 à 8h pour le MBDS 2015-2016, c'est aussi le sujet pour l'EMSI CASA!
Vous devez rendre le TP4 complet avec les ajouts suivants:
- Template avec joli Layout, logo, etc...
- Beaucoup de comptes et beaucoup d'opérations au moins 2000 (table des opérations aussi en Lazy Layout)
- On ne peut accèder à rien tant qu'on est pas loggué. Gérer la connexion comme vu en cours (cf le projet JSFLoginPassword) avec un JSF bean en SessionScoped (penser à le mettre Serializable et avoir la librairie CDI dans le projet)
- Lazy loading des comptes, essayer de faire marcher le tri et les filtres (par colonne, global)
- Afficher les soldes négatifs en rouge (cf projet Goualmi)
- Avoir des comptes Epargne et des comptes courants
- Pour les dégourdis: trouver un système pour que les comptes épargne s'incrémentent toutes les XXX secondes en appliquant le taux d'épargne (EJB timers tester avec NetBeans..., PrimeFaces AjaxCore/Poll, etc.)
- Avoir un système ergonomique pour transférer de l'argent (par exemple: champ avec auto completion de PrimeFaces)
- Utiliser les ViewParams quand on navigue d'une page à l'autre, utiliser SessionScoped uniquement pour l'authentification (login/password)
- Système ergonomique pour supprimer des comptes (selection de lignes et menu contextuel click droit cf PrimeFaces datatable/selection ou joli bouton avec icone de poubelle). Utiliser un widget de dialogue PrimeFaces pur confirmation Oui/Non.
- Joli menu sur la gauche, par exemple avec des panels Primefaces en accordéon
- Obligation d'utiliser au moins 10 composants PrimeFaces non vus en cours.
Projet Miage de Casablanca
Cours des années précédentes