Ta reguła powoduje oznaczenie wartości @Target innych niż ElementType.TYPE w adnotacjach niestandardowych, które spełniają następujące warunki:
@InterceptorBinding.@Interceptor.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.