This course aims at providing an overview of some technologies proposed by JakartaEE (ex JavaEE) for the development of we services. This includes:
We will use Maven for managing dependencies, building projects and deplying them. It is recommanded to have a look to the 5 minutes tutorial.
JakartaEE tutorial web site: https://github.com/eclipse-ee4j/jakartaee-tutorial.
A book on JAX-RS: RESTful Java with JAXRS (Second Edition)Voici la liste des outils dont vous aurez besoin pour le cours (au moins au début).
Objectifs: Révision du protocole HTTP, créer un premier service web
REST un style d'architecture d'application backend qui fournisse sur le web des services pour d'autres applications. Ces autres applications peuvent être par exemple des interfaces, ou front-end, écrites en javascript (ou autre). Les sercice REST utilisent des URLs pour identifier les données et les méthodes du protocole HTTP (GET, POST, PUT, DELETE, etc.) pour manipuler les données. Les échanges de données entre le service web et le client se font généralement grâce au langages JSON ou XML. Le format peut être éventellement négocié entre client et le serveur. Toutes les requêtes sur un service REST sont indépendantes : il n'y a pas de données de "session" stockées au niveau du serveur et donc les données de l'état d'une conversation doivent être embarquées dans les requêtes et réponses.
Pour réviser le protocole HTTP, lire la page de wikipedia sur HTTP.
Pour cette première séance : le sujet et le code
Le site web utilisé pour construire le TP1
Objectifs:Mapping JSON et XML, Validation des objets via Jakarta Bean Validation et gestion des erreurs dans un WS
Sur cette séance nous allons étudier (1) les mapping JSON et XML, (2) la gestion des erreurs dans les services REST et leur notification au client. Le sujet du TP 2 et le projet Maven de départ et le projet à la fin du TP.
Quelques références :
Objectifs: Utilisation du socle de persistence JPA (Java Persistence API).
Pour cette séance, on étudiera l'utilisation d'un framework de persistence relationnel-objet. Le sujet du TP 3 et le projet Maven de départ. Un cours complet sur JPA.
Objectifs: Suite sur le socle de persistence JPA (Java Persistence API).
GenericJpaDao.java Un cours complet sur JPA.
Objectifs: Authentification / Json Web Token (JWT)
Le cours/TP sur JWT et quelques classes utiles
Objectifs: Utilisation du socle de persistence JPA (Java Persistence API).
Pour cette séance, on étudiera l'utilisation d'un framework de persistence relationnel-objet. Le matériel pour cette séance est ici.
Objectifs: Utilisation avancée de JPA. Sécurisation des services avec JWT JSON Web Token
Pour cette séance, nous utiliserons ce projet ainsi que ce document.
The JavaEE development environnment is already installed in the university lab. We recommand you to install it at home, on your computer. To that extent, follow this procedure
Java servlet are the basic building block of JavaEE. Recommanded reading:
Java Server Faces (JSF) is a server-side framework for building web apps. It is the technology promoted by JCP. It is/will be the successor of JSP (Java Server Page). It is a component oriented framework (at the difference of Spring MVC or Struts that are action based frameworks).
Java Persitence API is the official object/relational mapping framework of JavaEE. It allows to automatize the correspondance between objects and relational databases.
A correction of the TP is avalaible. To download and use it, follow the following steps:
Download the archive SempicJPA.tar.gz, then
tar xzf SempicJpa.tar.gz cd SempicJpa mvn package tomee:exec java -jar target/SempicJPA-1-exec.jaropen the URL http://localhost:8080/SempicJPA-1
Java EE provides some authenfication mechanisms for web apps. Until now there are not easy to use (It seems to be better since JavaEE 8). We will study here how to implements a basic auth mechanism and control the access to resources.
A correction of the TP is avalaible. To download and use it, follow the following steps:
Download the archive SempicAuth.tar.gz, then
tar xzf SempicAuth.tar.gz cd SempicAuth mvn package tomee:exec java -jar target/SempicJPA-1.1-exec.jaropen the URL http://localhost:8080/SempicJPA-1.1