2017-09-27 12 views
0

CDI Beanと同様に、インターセプタバインディング可能アノテーションを使用してEJB上にインターセプタを宣言することは可能ですか?EJB上の注釈ベースのインターセプタ

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

@Stateless 
@Remote(MyService.class) 
public MyServiceImpl implements MyService { 

    @Override 
    @MyInterceptor 
    public String myBusinessMethod() { 
      return ""; 
    } 

} 
+1

それだけでなく、お勧めの方法です。単純に試してみることを妨げているのは何ですか? – Siliarus

+0

理由はわかりませんが、JBoss 7.0では動作しないようです。私はまだ調査中です。 '@Interceptors(MyInterceptor.class'。 –

+0

、' @ Priority'を追加した後でうまくいきました。ありがとう。 –

答えて

1

はい、可能です。 EJBは他のCDI Beanとほとんど同じように扱うことができます。 beans.xmlのインターセプタをアクティブ化するか、@Interceptorバインディングを追加する必要があります。詳細については、weldのドキュメントを参照してください。https://docs.jboss.org/weld/reference/1.0.0/en-US/html/interceptors.html

標準的なEJBアノテーションは、srcまたは上記のドキュメント化リンクに示されているように、このように実装されています。

関連する問題