私はEJBを初めて使い、私は最初の問題に直面しています。ステートレスEJBに含まれている@Scheduleメソッドを使用しようとしています。私は、このメソッドがBeanの作成時に設定されるだろうプライベートメンバ変数を使用したい:EJBステートレス - プライベートメンバーの初期化
ここでは簡単な例です:
@Singleton
@LocalBean
@Startup
public class Starter {
@PostActivate
private void postActivate() {
ScheduleEJB scheduleEjb = new ScheduleEJB("Hello");
}
}
とスケジュール豆:
@Stateless
@LocalBean
public class ScheduleEJB {
private String message;
public ScheduleEJB() {
super();
}
public ScheduleEJB(String message) {
super();
this.message= message;
}
@Schedule(second="*/3", minute="*", hour="*", dayOfMonth="*", dayOfWeek="*", month="*", year="*")
private void printMsg() {
System.out.println("MESSAGE : " + message);
}
}
問題PrintMsg()メソッドで印刷すると、私の "message"変数が常にヌルであるということです。これを達成する最良の方法は何ですか?
ありがとうございました!
2つのクラスの代わりに単一のシングルトンEJBを使用しない理由を説明できますか? PostConstructメソッドで変数を初期化し、同じシングルトンクラスでスケジューラを定義することができます。 – perissf