私はJBossAS7とEJBステートレスでScheduleメソッドを使用しています。私の問題は、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());
毎回新しいインスタンスになるので、タイマーが実行されるたびに行が1回異なる時刻を出力することを期待していましたTestTimer
が、私は間違っていました。
16:43:50,003 INFO [stdout] (EJB default - 3) foo.service.TestTimer@4a56936f foo.service.HelloWorldService@79e98289
16:44:40,022 INFO [stdout] (EJB default - 1) foo.service.TestTimer@4a56936f foo.service.HelloWorldService@79e98289
私は何か間違ったことをしていますか、これは予想される動作ですか、それとも何ですか?