私は迎撃結合界面でロガーインターセプタを定義しようとしています:ポストコンストラクトメソッドの@Target({METHOD、TYPE})とのインターセプタバインディングインターフェイスを使用できませんか?
@Inherited
@InterceptorBinding
@Retention(RUNTIME)
@Target({METHOD, TYPE})
public @interface OperationLogger {
@Nonbinding
public String operationName() default "";
@Nonbinding
public String details() default "";
}
が、GlassFishの4.1戻り、コンパイル中にこのエラーメッセージ:
インターセプターライフサイクルコールバックインターセプタ[クラス comのため。 adldoost.dwm.security.interceptor.OperationLoggerInterceptor インターセプト@OperationLogger]宣言とインターセプタバインディング interface com.adldoost.dwm.security.interceptorbinding.OperationLogger メソッドを@Targ et。
も8.1エディタが指示のNetBeans:ライフサイクルコールバック
インターセプターのみ@Target(TYPE)のように定義されるインターセプタ 結合タイプを宣言することができます。インターセプタ com.adldoost.dwm.security.interceptor.OperationLoggerInterceptor は不一致のインターセプタバインディングを宣言します com.adldoost.dwm.security.interceptorbinding.OperationLogger。
私の間違いは何ですか?
ターゲットは@Target({METHOD、TYPE})に設定されています。それをTYPEに変更する必要がありますか? –
私が言ったように、あなたのバインディングに '@Target(TYPE)'だけで注釈を付けたり、クラスに '@ OperationLogger'を追加したりしないでください。ライフサイクルコールバックメソッドです。 – andrepnh