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.
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?
Tags und Links java interceptor ejb-3.0