Ein Interceptor für Lebenszyklus-Callbacks kann ausschließlich Interceptorbindungstypen deklarieren, die mit @Target(TYPE) definiert sind

Diese Regel markiert @Target-Werte mit Ausnahme von ElementType.TYPE in angepassten Annotationen, die den folgenden Bedingungen entsprechen:

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.