Przechwytywacz dla wywołań zwrotnych cyklu życia może deklarować tylko typy powiązań przechwytywaczy zdefiniowane jako @Target(TYPE)

Ta reguła powoduje oznaczenie wartości @Target innych niż ElementType.TYPE w adnotacjach niestandardowych, które spełniają następujące warunki:

Poniżej znajdują się adnotacje przechwytywacza cyklu życia:

Poniższy przykład nie jest zgodny ze specyfikacją Java EE 7 Contexts and Dependency Injection (CDI) 1.2, ale był tolerowany w implementacji CDI 1.0, która jest oparta na implementacji Apache OpenWebBeans. W implementacji CDI 1.2, która jest oparta na implementacji Weld, aplikacja się nie uruchamia.

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


@Interceptor @MyIInterceptorPowiązanie klasy publicznej MyIInterceptor {

   @PostActivate
   void postActivate (InvocationContext inv)

   @PreDestroy
   void preDestroy (InvocationContext inv)
}

Aby rozwiązać ten problem, należy usunąć element ElementType.METHOD z adnotacji @Target i usunąć wszystkie odwołania do tej adnotacji w metodach aplikacji. Jeśli zostaną określone typy elementów inne niż ElementType.TYPE, należy je również usunąć.

Więcej informacji na temat implementacji Java EE 7 CDI 1.2 można znaleźć na stronie Zmiany w działaniu specyfikacji Contexts and Dependency Injection 1.2.