Toto pravidlo značí hodnoty @Target jiné než ElementType.TYPE u vlastních anotací, které splňují následující podmínky:
@InterceptorBinding.@Interceptor.Dále jsou uvedeny anotace zachytávače životního cyklu:
Následující příklad neodpovídá specifikaci Java EE 7 Contexty and Dependency Injection (CDI) 1.2, ale byla tolerována v implementaci CDI 1.0, která je založena na implementaci Apache OpenWebBeans. V rozhraní CDI 1.2, které je založeno na implementaci Weld, se aplikace nespustí.
@InterceptorBinding @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) public @interface MyIInterceptorVazba {}
@Interceptor @MyIInterceptorVazba veřejné třídy MyIInterceptor {
@PostActivate
void postActivate (InvocationContext inv)
@PreDestroy
void preDestroy (InvocationContext inv)
}
Chcete-li vyřešit tento problém, odeberte ElementType.METHOD z anotace @Target a odeberte všechny odkazy na anotaci u metod aplikace.
Jsou-li zadány jakékoli jiné typy prvků než ElementType.TYPE, musí být také odebrány.
Další informace o implementaci Java EE 7 CDI 1.2 viz Změny chování Contexts and Dependency Injection 1.2.