라이프사이클 콜백에 대한 인터셉터는 @Target(TYPE)으로 정의된 인터셉터 바인딩 유형만 선언할 수 있음

이 규칙은 다음 조건을 충족하는 사용자 정의 어노테이션에서 ElementType.TYPE 이외의 @Target 값을 플래그 지정합니다.

다음은 라이프사이클 인터셉터 어노테이션입니다.

다음 예제는 Java EE 7 CDI(Contexts and Dependency Injection) 1.2 스펙을 준수하지 않지만, Apache OpenWebBeans 구현을 기반으로 하는 CDI 1.0 구현에서는 허용되었습니다. Weld 구현을 기반으로 하는 CDI 1.2에서는 애플리케이션이 시작되지 않습니다.

 @InterceptorBinding @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) Public @interface MyIInterceptor바인딩 {}


@Interceptor @MyIInterceptor바인딩 공용 클래스 MyIInterceptor {

   @PostActivate
   void postActivate (InvocationContext inv)

   @PreDestroy
   void preDestroy (InvocationContext inv)
}

이 문제를 해결하려면 @Target 어노테이션에서 ElementType.METHOD를 제거하고, application 메소드에서 어노테이션에 대한 모든 참조를 제거하십시오. ElementType.TYPE 이외의 요소 유형이 지정된 경우에도 제거해야 합니다.

Java EE 7 CDI 1.2 구현에 대한 자세한 정보는 Contexts and Dependency Injection 1.2 동작 변경사항을 참조하십시오.