Diese Regel markiert @Target-Werte mit Ausnahme von ElementType.TYPE in angepassten Annotationen, die den folgenden Bedingungen entsprechen:
@InterceptorBinding annotiert.@Interceptor annotiert ist.Im Folgenden sind die Annotationen für Lebenszyklusinterceptors aufgelistet:
Das folgende Beispiel entspricht nicht der Java EE 7-Spezifikation Contexts and Dependency Injection (CDI) 1.2, wurde aber in der CDI 1.0-Implementierung, die auf der Apache OpenWebBeans-Implementierung basiert, toleriert. In der Spezifikation CDI 1.2, die auf der Weld-Implementierung basiert, wird die Anwendung nicht gestartet.
@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)
}
Zur Behebung dieses Problems entfernen Sie ElementType.METHOD aus der Annotation @Target sowie alle Referenzen auf die Annotation in Anwendungsmethoden.
Wenn andere Elementtypen als ElementType.TYPE angegeben sind, müssen diese ebenfalls entfernt werden.
Weitere Informationen zur CDI 1.2-Implementierung von Java EE 7 finden Sie unter Änderungen im Verhalten von Contexts and Dependency Injection zwischen Releases.