【发布时间】:2011-12-12 11:14:18
【问题描述】:
我是 EJB 新手,我正面临我的第一个问题。我正在尝试使用无状态 EJB 中包含的 @Schedule 方法。我希望这种方法使用在创建 bean 时设置的私有成员变量:
这是一个简短的例子:
@Singleton
@LocalBean
@Startup
public class Starter {
@PostActivate
private void postActivate() {
ScheduleEJB scheduleEjb = new ScheduleEJB("Hello");
}
}
还有调度 bean:
@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() 方法中打印时始终为空......实现这一点的最佳方法是什么?
感谢您的帮助!
【问题讨论】:
-
您能解释一下为什么您不使用单个 Singleton EJB 而不是两个类吗?您可以使用 PostConstruct 方法初始化您的变量,并在同一个 Singleton 类中定义您的调度程序。
标签: initialization ejb schedule stateless