Ceci est une ancienne révision du document !
I311 - EJB, CDI et REST
L’objectif de cette séance est de mettre en place simplement des EJB, des beans CDI en lien avec les services web REST et la persistance JPA.
Mise en place de l'environnement de travail
Dans ce cadre de ces TP nous utiliserons le serveur d’applications JakartaEE glassfish et plus plus précisément la distribution Payara (https://www.payara.fish/). Des images docker sont disponibles pour différents profils et différents JDK (https://hub.docker.com/u/payara/). Dans un premier temps, nous utiliserons la version 5 complète (https://hub.docker.com/r/payara/server-full). La série des Payara5 est compatible avec Jakarta EE9.1 et la série Payara6 avec Jakarta EE 10.
Une édition spéciale de payara dite micro (https://www.payara.fish/learn/getting-started-with-payara-micro/) est dédiée aux architectures micro-services.
Avec docker
Il est aussi possible et fortement conseillé d’utiliser docker pour cela. https://github.com/dptinfoutln/dockerpayaracompose/tree/develop (qui s’appuie sur https://github.com/payara/docker-payaraserver-full)
L’interface du serveur est accessible sur https://localhost:4848/ ou celle de votre VM virtualbox.
Pour paramétrer les connexions à la base de données, étudier le docker-compose.yml qui contient un exemple avec H2 (à adapter pour postgres).
Pour déployer une application, il est possible de le faire depuis l’interface web d’administration, via un volume docker, ou en faisant un image contenant l’application. Votre IDE peut etre paramétré pour faire cela via l’API spécifique du serveur (https://docs.payara.fish/community/docs/documentation/ecosystem/intellij-plugin/README.html).
Une application JEE "Minimale"
- Nous allons revoir les concepts de bases et la mise en pratique avec une application minimale :
- La mise en place de base et l’utilisation d’une servlet sont expliqués ici :
- L’accès à la servlet http://localhost:8080/hello/world
- La mise en place de base d’une API REST est présentée ici :
- L’accès à l’API REST : curl -v http://localhost:8080/hello/api/hello
- La mise en place de base de CDI est présentée ici
- A vous de décrouvrir la mise en place JPA avec JEE
A partir de là, mettez en place vos classes métiers avec CDI et des EJBs en vous appuyant sur la persistance JPA et activer l’accès via une API REST.
Pour aller beaucoup plus loin…. https://github.com/hantsy/jakartaee9-starter-boilerplate