rekursive Interceptoren

shining

Mitglied
Hallo,

ich habe eine EJB3 Bean auf einem JBoss(V4.0.5) Server. Dieser habe ich einen Klassen-Interceptor zugeordnet(mit @Interceptors(MyInterceptor.class)).
Wenn ich eine Methode der Bean aufrufen springt der Interceptor auch an. Wird in dieser aufgerufenen Methode jedoch eine andere Methode der selben Bean aufgerufen, springt der Interceptor nicht mehr an.
Liegt das daran, dass der alte Interceptor noch offen ist wegen des @AroundInvoke? Gibt es eine Möglichkeit dieses Problem zu umgehen?

Vielen Dank für eure Hilfe

Stefan
 

FArt

Top Contributor
Der Interceptor sollte m.E. nur bei Bean-Calls (EJB) zum tragen kommen. Wenn du aus dem EJB heraus eine Methode auf dem Bean aufrufst, ist das zweite ein interner Call, der nicht über den EJB Container geht...

Umgehen kann man das m.E. nicht sinnvoll.
Ich würde mich eher fragen, was der Interceptor macht und warum der auch bei internen Calls noch mal aufgerufen werden soll.
 

shining

Mitglied
Danke für deine schnelle Antwort.

Der Interceptor soll den Aufruf loggen. Dafür wäre es halt gut wenn auch die internen Calls aufgezeichnet werden. Welche Möglichkeit gibt es dies zu tun(außer AOP)?

Grüße

Stefan
 

FArt

Top Contributor
Im Prinzip hast du keine andere Möglichkeit das explizit oder über ein weiteres Framework bzw. API implizti mit AOP oder ähnlichen Mitteln zu realisieren.
 

Neue Themen


Oben