2011-11-11 5 views
4

Est-il possible de configurer l'intercepteur par défaut pour tous les EJB d'une oreille?Intercepteurs EJB Java EE

Les intercepteurs par défaut peuvent être mentionnés pour les EJB dans un module dans le fichier ejb-jar.xml. S'il y a plusieurs modules dans une application, tous les modules doivent avoir cette configuration.

Je cherche à imposer certains intercepteurs sur l'application globalement. Il serait donc utile de pouvoir le définir au niveau de l'application ou au niveau du serveur, de sorte que les développeurs des différents modules ne soient pas libres de les inclure.

+0

Quelle version d'EJB? – skaffman

+0

hors sujet sujet, serait-ce trop sur le filtrage/interception? – r0ast3d

+0

La version EJB est 3.1 et j'utilise des intercepteurs JEE 6. L'inconvénient est que les intercepteurs par défaut doivent être configurés dans chaque ejb-jar.xml dans tous les modules ejb. L'intention est d'avoir certains intercepteurs d'audit/enregistrement pour tous les services exposés par l'application. J'ai trouvé quelque chose de similaire au printemps, où en utilisant AOP, il est possible de configurer les intercepteurs au niveau du service. J'essaie de savoir si JEE 6 supporte de telles fonctionnalités – lives

Répondre

2

Vous ne pouvez pas éviter d'avoir à spécifier l'intercepteur dans chaque fichier ejb-jar, il n'y a aucune possibilité de le définir au niveau EAR. La classe Interceptor doit être compressée dans le même fichier ejb-jar que tous les beans qui l'utilisent.

Vous pouvez toujours extraire le code d'intercepteur dans une bibliothèque commune utilisée par tous les modules ejb, mais dans chaque fichier ejb-jar, vous devez définir et activer un intercepteur distinct appelant l'implémentation commune.