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).
Hello World
https://blog.payara.fish/getting-started-with-jakarta-ee-9-hello-world L’accès à la servlet http://localhost:8080/hello/world
https://blog.payara.fish/getting-started-with-jakarta-ee-9-how-to-create-a-rest-api-with-jakarta-ee-9 L’accès à l’API REST curl -v http://localhost:8080/hello/api/hello
curl -v “http://localhost:8080/hello/api/hello/cdi/Bob?language=fr” En vous servant du cours et de la page suivante mettez en place vos classes métiers avec CDI et des EJBs. https://blog.payara.fish/getting-started-with-jakarta-ee-9-context-and-dependency-injection-cdi
A vous de mettre en place JPA https://blog.payara.fish/getting-started-with-jakarta-ee-9-jakarta-persistence-api-jpa
Pour aller beaucoup plus loin…. https://github.com/hantsy/jakartaee9-starter-boilerplate