Um interceptor para retornos de chamadas de ciclo de vida pode apenas declarar tipos de ligação de interceptor que estiverem definidos como @Target(TYPE)

Esta regra sinaliza valores @Target diferentes de ElementType.TYPE em anotações customizadas que atendem as condições a seguir:

A seguir estão as anotações de interceptor de ciclo de vida:

O exemplo a seguir não obedece à especificação de Contexts and Dependency Injection (CDI) 1.2 de Java EE 7, mas foi tolerado na implementação do CDI 1.0, que é baseada na implementação do OpenWebBeans do Apache. No CDI 1.2, que é baseado na implementação do Weld, o aplicativo não inicia.

 @InterceptorBinding (RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) público @interface MyIInterceptorLigação {}


@Interceptor @MyIInterceptorClasse pública de ligação MyIInterceptor {

   @PostActivate
   void postActivate (InvocationContext inv)

   @PreDestroy
   void preDestroy (InvocationContext inv)
}

Para resolver esse problema, remova o ElementType.METHOD a partir da anotação @Target e remova todas as referências para a anotação em métodos de aplicativo. Se algum tipo de elemento diferente de ElementType.TYPE for especificado, ele também deverá ser removido.

Para obter mais informações sobre a implementação do Java EE 7 CDI 1.2, consulte Mudanças de comportamento do Contexts and Dependency Injection 1.2.