Cette règle signale les valeurs @Target autres que ElementType.TYPE dans les annotations personnalisées qui répondent aux conditions suivantes :
@InterceptorBinding.@Interceptor.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.