Un intercepteur pour rappels de cycle de vie peut uniquement déclarer des types de liaison d'intercepteur définis en tant que @Target(TYPE)

Cette règle signale les valeurs @Target autres que ElementType.TYPE dans les annotations personnalisées qui répondent aux conditions suivantes :

Les annotations suivantes sont des annotations d'intercepteur de cycle de vie :

L'exemple suivant n'est pas conforme à la spécification Contexts and Dependency Injection (CDI) 1.2 de Java EE 7 mais est toléré dans l'implémentation CDI 1.0, laquelle est basée sur l'implémentation OpenWebBeans d'Apache. Dans CDI 1.2, qui est basé sur l'implémentation Weld, l'application ne démarre pas.

 @InterceptorBinding @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) public @interface MyIInterceptorLiaison { }


@Interceptor @MyIInterceptorClasse publique de liaison MyIInterceptor {

   @PostActivate
   void postActivate (InvocationContext inv)

   @PreDestroy
   void preDestroy (InvocationContext inv)
}

Pour résoudre de problème, supprimez le type d'élément ElementType.METHOD de l'annotation @Target, ainsi que toutes les références à l'annotation sur les méthodes de l'application. Si des types d'élément autres que ElementType.TYPE sont spécifiés, ils doivent aussi être supprimés.

Pour plus d'informations sur l'implémentation Java EE 7 CDI 1.2, voir Changements de comportement dans Contexts and Dependency Injection 1.2.