Нам нужна беговая нить в контейнере EJB3.0. В настоящее время у нас есть «TimerService» @Stateless EJB (необходимо, потому что у него есть другие добавленные @EJB), который создает интервал EJB Timer, когда вызывается метод startTimer(). Должен быть только один экземпляр этого потока таймера. Текущее решение включает вызов метода startTimer() из метода init() одного из наших сервлетов, где сервлет вынужден загружаться при запуске, используя в web.xml, но это похоже на случайное поведение вместо правильного способа делать что-то , У нас уже была проблема, потому что кто-то подклассифицировал этот сервлет, а это означало, что init() вызывался дважды, что означало два потока таймера.Одиночная фоновая резьба в контейнере EJB3.0
Такое ощущение, что это не необычное требование, так что это правильный способ сделать это, если что-нибудь? Мне кажется, что должен быть простой способ попросить контейнер начать поток, когда он запустится, без необходимости привязывать его к другим ресурсам в контейнере.
возможно имеющий отношение? http://stackoverflow.com/questions/2707733/eager-auto-loading-of-ejb-load-ejb-on-startup-on-jboss – Bozho 2010-12-02 13:47:03
Спасибо - принятый ответ относится к EJB3.1, который мы не но интерес представляет другой ответ, в котором упоминается, что наилучшим способом до 3.1 является решение, которое мы используем в настоящее время :( – RevBingo 2010-12-02 13:49:47