Wie erhält man den Namen des Aufrufers in der Lifecycle-Event-Methode des EJB-Interceptors?

8

Ich benutze Java EE 5. Ich habe einen Interceptor für alle EJBs mit drei Methoden zur Protokollierung geschrieben:

%Vor%

Ich möchte den Namen von EJB bekommen, der diesen Interceptor genannt hat. Wie kann ich es tun?

Ich habe ctx.getMethod().getDeclaringClass().getSimpleName() versucht, aber ctx.getMethod() gibt null in postConstruct(-) und predestroy(-) Methoden zurück.

    
Balconsky 30.11.2011, 11:56
quelle

2 Antworten

4

Bei Lebenszyklusrückrufen gibt ctx.getMethod () null zurück. Dies ist zum Beispiel hier dokumentiert: Ссылка

Das ist so, weil es nicht Ihr EJB ist, sondern Container, der Lifecycle Callback-Methoden aufruft.

Wenn Sie interessiert sind über die Assoziation zwischen Interceptor und Bean, zu der sie gehört, dient die ctx.getTarget () -Methode nicht Ihrem Zweck?

    
Mikko Maunu 30.11.2011, 16:02
quelle
0

Auf dem WebLogic-Server können Sie dies in postConstructor usw. verwenden, um den EJB-Namen zu erhalten:

%Vor%     
Pecenin 22.04.2013 21:13
quelle

Tags und Links