2011-11-11 18 views
4

耳の中のすべてのEJBに対してデフォルトのインターセプタを設定することはできますか?Java EE EJBインターセプタ

デフォルトのインターセプタは、ejb-jar.xmlのモジュール内のEJBに対して記述できます。アプリケーション内に複数のモジュールがある場合、すべてのモジュールにこの構成が必要です。

私はアプリケーション上の特定のインターセプタをグローバルに強制することを検討しています。したがって、アプリケーションレベルまたはサーバーレベルで設定できるので、個々のモジュールの開発者がそのモジュールを組み込むことができるようにすることは有益です。

+0

どのバージョンのEJBですか?トピックのコメントをオフに – skaffman

+0

、それはあまりにも多くのフィルタリング/インターセプトですか? – r0ast3d

+0

EJBバージョンは3.1で、JEE 6インターセプタを使用しています。欠点は、すべてのejbモジュールの各ejb-jar.xmlでデフォルトのインターセプタを準備する必要があることです。アプリケーションによって公開されるすべてのサービスについて、特定の監査/ロギングインターセプタを使用することです。 AOPを使用すると、サービスレベルでインターセプタを設定することができる、春にも同様のものが見つかりました。私は、JEE 6がそのような機能をサポートしているかどうかを調べようとしています – lives

答えて

2

各ejb-jarファイルにインターセプタを指定する必要はありません。EARレベルで定義することはできません。インターセプタクラスは、それを使用するすべてのBeanと同じejb-jarファイルにパックする必要があります。

すべてのejbモジュールで使用される共通ライブラリに引き続き、インターセプタのコードを抽出できますが、各ejb-jarファイルでは、共通実装を呼び出す別のインターセプタを定義してアクティブ化する必要があります。

関連する問題