Ejb-timer-service
提供:Dev Guides
EJB-タイマーサービス
タイマーサービスは、スケジュールされたアプリケーションを構築できるメカニズムです。 たとえば、毎月1日の給与明細生成。 EJB 3.0仕様では、@ Timeoutアノテーションが指定されています。これは、ステートレスBeanまたはメッセージ駆動型BeanでEJBサービスをプログラミングするのに役立ちます。 EJBコンテナは、@ Timeoutで注釈が付けられたメソッドを呼び出します。
EJBタイマーサービスは、EJBコンテナーによって提供されるサービスです。これは、タイマーの作成と、タイマーの期限が切れたときのコールバックのスケジュールに役立ちます。
タイマーを作成する手順
@Resourceアノテーションを使用してBeanにSessionContextを注入します-
SessionContextオブジェクトを使用して、TimerServiceを取得し、タイマーを作成します。 ミリ秒単位の時間とメッセージを渡します。
タイマーを使用する手順
メソッドに@Timeoutアノテーションを使用します。 戻り値の型はvoidで、Timer型のパラメーターを渡す必要があります。 最初の実行後にタイマーをキャンセルします。そうしないと、修正間隔の後も実行を続けます。
応用例
EJBでタイマーサービスをテストするためのテストEJBアプリケーションを作成しましょう。
Step | Description |
---|---|
1 | Create a project with a name EjbComponent under a package com.finddevguides.timer as explained in the EJB - Create Application chapter. |
2 | Create TimerSessionBean.java and TimerSessionBeanRemote 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モジュール)
TimerSessionBean.java
TimerSessionBeanRemote.java
- EjbComponentプロジェクトをJBOSSにデプロイするとすぐに、jbossログに注目してください。
- JBossは、セッションBeanのJNDIエントリを自動的に作成しました- TimerSessionBean/remote 。
- このルックアップ文字列を使用して、タイプのリモートビジネスオブジェクトを取得します- com.finddevguides.timer.TimerSessionBeanRemote
JBoss Application Serverのログ出力
EJBTester(EJBクライアント)
jndi.properties
- これらのプロパティは、JavaネームサービスのInitialContextオブジェクトを初期化するために使用されます。
- InitialContextオブジェクトは、ステートレスセッションBeanのルックアップに使用されます。
EJBTester.java
EJBTesterは次のタスクを実行しています。
- jndi.propertiesからプロパティをロードし、InitialContextオブジェクトを初期化します。
- testTimerService()メソッドでは、jndiルックアップが名前-"TimerSessionBean/remote"で実行され、リモートビジネスオブジェクト(タイマーステートレスEJB)が取得されます。
- 次に、スケジュール時間として2000ミリ秒を渡してcreateTimerが呼び出されます。
- EJBコンテナは2秒後にtimeoutHandlerメソッドを呼び出します。
クライアントを実行してEJBにアクセスする
プロジェクトエクスプローラーでEJBTester.javaを見つけます。 EJBTesterクラスを右クリックして、 run file を選択します。
Netbeansコンソールで次の出力を確認します。
JBoss Application Serverのログ出力
JBossログで次のコールバックエントリを見つけることができます