Un interceptor para devoluciones de llamada de ciclo de vida sólo puede declarar tipos de enlace de interceptor que estén definidos como @Target(TYPE)

Esta regla señala valores @Target distintos de ElementType.TYPE en anotaciones personalizadas que cumplen las condiciones siguientes:

A continuación se indican las anotaciones de interceptor de ciclo de vida:

El ejemplo siguiente no cumple con la especificación de Java EE 7 CDI (Contexts and Dependency Injection) 1.2 pero se toleraba en la implementación de CDI 1.0, que se basa en la implementación de Apache OpenWebBeans. En CDI 1.2, que se basa en la implementación de Weld, la aplicación no se inicia.

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


@Interceptor @MyIInterceptorClase pública de enlace MyIInterceptor {

   @PostActivate
   void postActivate (InvocationContext inv)

   @PreDestroy
   void preDestroy (InvocationContext inv)
}

Para resolver este problema, elimine ElementType.METHOD de la anotación @Target y elimine todas las referencias a la anotación en los métodos de aplicación. Si se especifica algún tipo de elemento distinto de ElementType.TYPE, también deben eliminarse.

Para obtener más información sobre la implementación de EE 7 CDI 1.2, consulte Cambios de comportamiento de Contexts and Dependency Injection 1.2.