Caros colegas,
estou tentando implementar um interceptor para um determinado método de um Backing Bean utilizando o Seam. Utilizei como exemplo um tutorial que se provou totalmente funcional para o interceptor de classe, porém quando tento a abordagem para o método ele não funciona.
link do tutorial:
http://www.redhat.com/docs/manuals/jboss/jboss-eap-4.2/doc/seam/Seam_Reference_Guide/Events_interceptors_and_exception_handling-Seam_interceptors.html
Definição da anotação :
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Interceptors(nomeDaClass.class)
public @interface LoggedIn {}
Definição na assinatura da anotação:
@LoggedIn
@Interceptors(SeamInterceptor.class)
public void metodo(){
//implementação
}
Definição do interceptor
import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;
public class LoggerInterceptor{
@AroundInvoke
public Object loggarInterceptor(InvocationContext invocationContext) throws Exception {
System.out.println("Before method execute...");
System.out.println(invocationContext.getMethod().getName());
Object proceed = invocationContext.proceed();
System.out.println("After method execute...");
return proceed;
}
}
Essas foram as únicas diferenças do tutorial. Note que mudei o tipo do target para method (como o tutorial sugere) e coloquei a assinatura da anotação da classe para o método desejado. Infelizmente ele não executa o método e não lança nenhuma exception.
estou usando :
JBoss 4.2.2.GA
seam 2.0.2.SP1
java 1.6
Alguém conseguiu fazer uma implementação funcional desse caso que possa compartilhar?