2

ステートレス Bean には、次の行があります。

@Schedule(minute="*/2", hour="*")
public void doSomething() {}

このメソッドは 2 分ごとに呼び出されると予想していますが、デプロイしても何も起こりません。さらに、@Schedule を Bean に配置し、この Bean のメソッドを呼び出すクライアントがない場合 (Bean インスタンスがまだ作成されていない場合)、コンテナーまたは何かがこのメソッドを 2 分ごとに呼び出すでしょうか?

@Schedule アノテーションを使うのは初めてなのですが、どなたかアドバイスいただけると助かります。

よろしくお願いします、

ジェームズ・トラン

4

2 に答える 2

1

Java EE 5 および GlassFish v2.1 で NetBean 6.7.1 を使用していました。NetBean 7.0.1 を Java EE 6 および GlassFish v3.1 とともにインストールし、それを使用してアプリケーションをデプロイした後、@Schedule アノテーションが最終的に期待どおりに機能するようになりました。

于 2011-08-11T20:04:38.827 に答える
1

これは、 EE 6 ドキュメントのタイマー サービスに関するリンクです。

関連する部分に注意してください -

@Schedule または @Schedules アノテーションが付けられたメソッドを含むエンタープライズ Bean がデプロイされると、EJB コンテナーによって自動タイマーが作成されます。エンタープライズ Bean は、複数の自動タイムアウト メソッドを持つことができます。これは、エンタープライズ Bean クラスで @Timeout アノテーションが付けられたメソッドを 1 つだけ許可するプログラム タイマーとは異なります。

@Schedule を使用する代わりに、ejb-jar.xml から自動スケジューリングを実行してみることもできます。一見すると、おそらく試してみることを除いて、セットアップ方法に問題はありません

@Schedule(minute="0/2", hour="*")

編集以下の@bkailsのコメントを参照してください。それはおそらくあなたに何も買わないでしょう。

于 2011-08-10T16:03:47.240 に答える