이 규칙은 다음 조건을 충족하는 사용자 정의 어노테이션에서 ElementType.TYPE 이외의 @Target 값을 플래그 지정합니다.
@InterceptorBinding 어노테이션이 있습니다.@Interceptor 어노테이션이 있는 클래스에서 사용됩니다.다음은 라이프사이클 인터셉터 어노테이션입니다.
다음 예제는 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 동작 변경사항을 참조하십시오.