Я хочу создать таймер EJB3, когда в пуле создается компонент без сохранения состояния.Но если я использую @PostConstruct
, я получаю исключение:
java.lang.IllegalStateException: [EJB:010193]Illegal call to EJBContext method. The bean is in "null" state. It cannot perform 'getting the Timer Service' action(s). Refer to the EJB specification for more details.
Если контейнер вызывает @PostConstruct, бин не равен нулю.Итак, почему я получаю это исключение?
КЛАСС
@Stateless
public class TestBean implements TestLocal {
@Resource
TimerService timerService;
@PostConstruct
public void startTimer() {
if (timerService.getTimers().size() == 0) {
timerService.createTimer(1 * 1000, 1 * 1000, null);
}
}
@Override
public void test() {
}
}
ИНТЕРФЕЙС
@Local
public interface TesteLocal {
void test();
}
SERVLET
public class TestServlet extends HttpServlet {
@EJB
private TestLocal test;
protected void doGet(....) throws .... {
test.test();
}
}
ДЕТАЛИ
Я использую сервер weblogic 11g.