Ejb-interceptors
提供:Dev Guides
EJB-インターセプター
EJB 3.0は、@ AroundInvokeアノテーションが付けられたメソッドを使用してビジネスメソッド呼び出しをインターセプトする仕様を提供します。 インターセプターメソッドは、ビジネスメソッドがインターセプトする前にejbContainerによって呼び出されます。 以下は、インターセプターメソッドのサンプルシグネチャです。
インターセプターメソッドは、3つのレベルで適用またはバインドできます。
- デフォルト-デプロイメント内のすべてのBeanに対してデフォルトのインターセプターが呼び出されます。デフォルトのインターセプターは、xml(ejb-jar.xml)を介してのみ適用できます。
- Class -Beanのすべてのメソッドに対してクラスレベルのインターセプターが呼び出されます。 クラスレベルのインターセプターは、xml(ejb-jar.xml)を介した注釈によって両方に適用できます。
- メソッド-Beanの特定のメソッドに対してメソッドレベルのインターセプターが呼び出されます。 メソッドレベルのインターセプターは、xml(ejb-jar.xml)を介したアノテーションによって適用できます。
ここでは、クラスレベルのインターセプターについて説明します。
インターセプタークラス
リモートインターフェース
インターセプトされたステートレスEJB
応用例
テストEJBアプリケーションを作成して、インターセプトされたステートレスEJBをテストしましょう。
Step | Description |
---|---|
1 | Create a project with a name EjbComponent under a package com.finddevguides.interceptor as explained in the EJB - Create Application chapter. You can also use the project created in EJB - Create Application chapter as such for this chapter to understand intercepted EJB concepts. |
2 | Create LibraryBean.java and LibraryBeanRemote under package com.finddevguides.interceptor as explained in the EJB - Create Application chapter. Keep rest of the files unchanged. |
3 | Clean and Build the application to make sure business logic is working as per the requirements. |
4 | Finally, deploy the application in the form of jar file on JBoss Application Server. JBoss Application server will get started automatically if it is not started yet. |
5 | Now create the ejb client, a console based application in the same way as explained in the EJB - Create Application chapter under topic* Create Client to access EJB*. |
EJBComponent(EJBモジュール)
LibraryBeanRemote.java
LibraryBean.java
- EjbComponentプロジェクトをJBOSSにデプロイするとすぐに、jbossログに注目してください。
- JBossは、セッションBeanのJNDIエントリを自動的に作成しました- LibraryBean/remote 。
- このルックアップ文字列を使用して、タイプのリモートビジネスオブジェクトを取得します- com.finddevguides.interceptor.LibraryBeanRemote
JBoss Application Serverのログ出力
EJBTester(EJBクライアント)
jndi.properties
- これらのプロパティは、JavaネームサービスのInitialContextオブジェクトを初期化するために使用されます。
- InitialContextオブジェクトは、ステートレスセッションBeanのルックアップに使用されます。
EJBTester.java
EJBTesterは次のタスクを実行します-
- jndi.propertiesからプロパティをロードし、InitialContextオブジェクトを初期化します。
- testInterceptedEjb()メソッドでは、jndiルックアップが「LibraryBean/remote」という名前で実行され、リモートビジネスオブジェクト(ステートレスEJB)が取得されます。
- 次に、ユーザーにライブラリストアのユーザーインターフェイスが表示され、ユーザーは選択肢を入力するよう求められます。
- ユーザーが1を入力すると、システムはブック名を要求し、ステートレスセッションBeanのaddBook()メソッドを使用してブックを保存します。 セッションBeanは、ブックをそのインスタンス変数に保存しています。
- ユーザーが2を入力すると、システムはステートレスセッションBeanのgetBooks()メソッドを使用して本を取得し、終了します。
クライアントを実行してEJBにアクセスする
プロジェクトエクスプローラーでEJBTester.javaを見つけます。 EJBTesterクラスを右クリックして、 run file を選択します。
Netbeansコンソールで次の出力を確認します。
JBoss Application Serverのログ出力
JBoss Application Serverのログ出力で次の出力を確認します。