Az életciklus visszahívások elfogója csak @Target(TYPE) formában meghatározott elfogó kötéstípusokat deklarálhatnak

Ez a szabály megjelöli az ElementType.TYPE értékűtől eltérő @Target értékeket az egyéni annotációk esetén, a következő feltételekkel:

Az életciklus elfogó annotációk a következők:

A következő példa nem kompatibilis a Java EE 7 Contexts and Dependency Injection (CDI) 1.2 specifikációval, de az Apache OpenWebBeans megvalósításon alapuló CDI 1.0 megvalósítás elfogadta. A CDI 1.2 specifikációban, amely a Weld megvalósításon alapul, az alkalmazás nem indul el.

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


@Interceptor @ @MyIInterceptorBinding nyilvános osztály MyIInterceptor {

   @PostActivate
   void postActivate (InvocationContext inv)

   @PreDestroy
   void preDestroy (InvocationContext inv)
}

A probléma megoldása érdekében távolítsa el az ElementType.METHOD jellemzőt a @Target annotációból, és távolítsa el az összes hivatkozást az annotációra az alkalmazás módszerekből. Ha meg van adva bármilyen, nem ElementType.TYPE elemtípus, akkor azokat is el kell távolítani.

A Java EE 7 CDI 1.2 megvalósítással kapcsolatos további információk: Contexts and Dependency Injection 1.2 viselkedésváltozásai.