Les intercepteurs sont des méthodes spéciales (définies par le programmeur)
que le container EJB utilise pour intercepter l'appel d'une méthode "cible" d'un bean
(la méthode cible va réagir comme si elle a été appelée directement par la méthode de l'intercepteur).
Les intercepteurs peuvent être utilisées avec des stateless, statefull, singleton et MDBs.
Une méthode d'interception doit avoir la signature suivante :
Créer une application qui utilise des intercepteurs
Créer un projet Maven:
Importez le projet dans votre éditeur du code (Eclipse, NetBeans, …).
Notes :
Sur Linux, le caractère "\" permet d'écrire une commande sur plusieurs lignes.
Sur Windows, il faut utiliser le caractère "^".
Modifier le fichier "pom.xml":
Modifier le fichier "web.xml":
Créer une classe Java pour déclarer un intercepteur :
- L'annotation @AroundInvoke permet de designer la méthode comme une méthode d'interception.
Créer une classe Java (stateless) pour déclarer une méthode cible de l'intercepteur :
- L'annotation @Interceptors permet de designer la classe comme cible de l'intercepteur.
- L'attribut value de l'annotation @Interceptors permet de specifier les intercepteurs.
- Dans cet exemple, toutes les méthodes de la classe seront des cibles de l'intercepteur.
Créer une classe Java (servlet) pour tester l'intercepteur :
Créer, déployer et tester l'intercepteur :
Pour builder le projet il faut utiliser la commande Maven : "mvn install".
Le fichier WAR créé peut être déployé seul ou packagé dans un EAR.
Pour tester l'intercepteur utiliser l'URL swivante : "http://localhost:9080/modulez-interceptors/ServletFirst"
Voici un exemple de log du fichier "SystemOut.log" de WebSphere WAS :