Перехватчик обратных вызовов жизненного цикла может объявлять только типы привязок перехватчика, определенные как @Target(TYPE)

Это правило отмечает значения @Target, отличные от ElementType.TYPE, в пользовательских аннотациях, отвечающих следующим условиям:

К аннотациям перехватчика жизненного цикла относится следующее:

Приведенный ниже пример не соответствует спецификации Contexts and Dependency Injection (CDI) 1.2 в Java EE 7, однако считается допустимым в реализации CDI 1.0, основанной на реализации Apache OpenWebBeans. В CDI 1.2, где за основу взята реализация Weld, такое приложение не сможет запуститься.


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


@Interceptor 
@MyIInterceptorBinding public class MyIInterceptor {

   @PostActivate
   void postActivate (InvocationContext inv)

   @PreDestroy
   void preDestroy (InvocationContext inv)
}

Для устранения неполадки удалите ElementType.METHOD из аннотации @Target, а также удалите все ссылки на аннотацию в методах приложения. Если заданы какие-либо типы элементов, кроме ElementType.TYPE, то их также необходимо удалить.

Для получения дополнительной информации о реализации CDI 1.2 в Java EE 7 обратитесь к документу Contexts and Dependency Injection 1.2: изменение принципов работы.