我在EJB無狀態上使用JBoss AS 7和Schedule方法。我的問題是即使是EJB也是無狀態的,它保持其狀態,這給我帶來了麻煩。這裏是例子:使用EJB的無狀態EJB保持狀態時間表
定時器:
@Stateless
public class TestTimer {
@Inject HelloWorldService helloWorld;
@SuppressWarnings("unused")
@Schedule(second="*/10", minute="*", hour="*", info="MyTimer")
private void execute() {
System.out.println(helloWorld.sayHello());
System.out.println(this.toString() + " "+ helloWorld.toString());
}
}
注入的HelloWorldService:
public class HelloWorldService {
public String sayHello() {
return "Hello World!";
}
}
我期待該行System.out.println(this.toString() + " "+ helloWorld.toString());
將每一次打印一個不同的時間定時器運行,因爲它每次都會有一個新的TestTimer
實例,但我錯了:
16:43:50,003 INFO [stdout] (EJB default - 3) [email protected] [email protected]
16:44:40,022 INFO [stdout] (EJB default - 1) [email protected] [email protected]
我做錯了什麼,這是預期的行爲,還是什麼?
所有這些都是很好的答案,並幫助我瞭解一些有關我的問題。我會接受你的,因爲它更好地描述了案件 – Montolide
很高興我可以幫助你! –