Le 11/04/2012 18:28, Eric Chatellier a écrit :
Après un nouvel essai, j'ai un debut d'implémentation qui marche.
L'interceptor ouvre une transaction (topiacontext) et l'enregistre dans la transaction du conteneur. Il enregistre le topiacontext egalement dans une map de données de InvocationContext de l'intercepteur.
Finalement, cela ne fonctionne pas. La map de l'InvocationContext n'est disponible que pour l'ejb qui est la cible de l'intercepteur, pas pour les appels suivants :( Je suis donc revenu au thread local. C'est mieux que ce qu'il y a actuellement, mais c'est pas top.
L'EJB service utilise un DAOHelper (qui est un ejb aussi) qui a accès à l'EJBContext qui contient la même map que celle de l'intercepteur avec le context topia qu'il peut utiliser pour instancier les dao.
Le DAOHelper n'est plus un EJB et les règles (AccountingRule) non plus. -- Éric Chatellier <chatellier@codelutin.com> Tel: 02.40.50.29.28 http://www.codelutin.com