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 dans un serveur d’application géré dans un conteneur.

Dans le cadre de ces TP nous utiliserons le serveur d’applications JakartaEE Glassfish et plus précisément la distribution Payara (https://www.payara.fish/). 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. Des images docker sont disponibles pour différents profils et différents JDK (https://hub.docker.com/u/payara/).

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.

Il fortement conseillé d’utiliser des conteneurs pour mettre en oeuvre le serveur d’application, la base de données relationnelles et les autres services.

Vous trouverez ici un exemple de base qui s’appuie sur https://github.com/payara/docker-payaraserver-full : https://github.com/dptinfoutln/dockerpayaracompose/tree/develop

USER
git clone git@github.com:dptinfoutln/dockerpayaracompose.git cd dockerpayaracompose docker-compose up -d docker-compose logs -f

L’interface d’administration du serveur est accessible sur https://localhost:4848/ (ou l’IP de votre VM).

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 une image contenant l’application. Votre IDE peut être paramétré pour faire cela via l’API spécifique du serveur (https://docs.payara.fish/community/docs/documentation/ecosystem/intellij-plugin/README.html).

Ce projet illustre les concepts et techniques de base en s'appuyant sur les documents suivants.

A partir de là, mettre en place vos classes métiers avec CDI et des EJBs en vous appuyant sur la persistance JPA et permettre l’accès via une API REST.

Pour aller beaucoup plus loin…. https://github.com/hantsy/jakartaee9-starter-boilerplate