この規則により、以下の条件に適合するカスタム・アノテーションにおいて ElementType.TYPE 以外の @Target 値にフラグを立てます。
@InterceptorBinding のアノテーションが付けられている。@Interceptor のアノテーションが付けられたクラスで使用されている。以下がライフサイクル・インターセプター・アノテーションです。
以下の例は、Java EE 7 Contexts and Dependency Injection (CDI) 1.2 仕様に準拠しませんが、 Apache OpenWebBeans 実装に基づいている CDI 1.0 実装では許容されていました。Weld 実装に基づいている CDI 1.2 では、アプリケーションは開始しません。
@InterceptorBinding @Retention(RetentionPolicy。RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) public @interface MyIInterceptorバインディング {}
@Interceptor @MyIInterceptorpublic クラス MyIInterceptor をバインドしています {
@PostActivate
void postActivate (InvocationContext inv)
@PreDestroy
void preDestroy (InvocationContext inv)
}
この問題を解決するには、ElementType.METHOD を @Target アノテーションから削除し、そのアノテーションへのすべての参照をアプリケーション・メソッドから削除します。
ElementType.TYPE 以外のエレメント・タイプが指定されている場合は、それらも削除する必要があります。
Java EE 7 CDI 1.2 実装について詳しくは、 Contexts and Dependency Injection 1.2 での振る舞いの変更を参照してください。