Un intercettatore per callback del ciclo di vita può dichiarare solo i tipi di bind intercettatore definiti come @Target(TYPE)

Questa regola contrassegna i valori di @Target diversi da ElementType.TYPE nelle annotazioni personalizzate che soddisfano le seguenti condizioni:

Le seguenti sono le annotazioni intercettatore del ciclo di vita:

Il seguente esempio non è conforme alle specifiche di Java EE 7 Contexts and Dependency Injection (CDI) 1.2 ma è stata tollerata nell'implementazione di CDI 1.0, che si basa sull'implementazione di Apache OpenWebBeans. In CDI 1.2, che si basa sull'implementazione di Weld, l'applicazione non parte.

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


@Interceptor @MyIInterceptorCollegamento della classe pubblica MyIInterceptor {

   @PostActivate
   void postActivate (InvocationContext inv)

   @PreDestroy
   void preDestroy (InvocationContext inv)
}

Per risolvere questo problema, rimuovere ElementType.METHOD dall'annotazione @Target, e rimuovere tutti i riferimenti all'annotazione nei metodi dell'applicazione. Sarà necessario rimuovere qualsiasi tipo di elemento diverso da ElementType.TYPE, se presente.

Per ulteriori informazioni sull'implementazione di Java EE 7 CDI 1.2, consultare Contexts and Dependency Injection 1.2 behavior changes.