| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > J2EE и демон объект(компонент) |
| Автор: VSergeyV 7.6.2008, 13:01 |
| Необходимо чтобы при запуске J2EE приложения создавался объект(компонент), который что-то делал, и был жив на всем протежении работы приложения - как это сделать? Могут ли это EJB 3, или какой pattern использовать, или еще как то? |
| Автор: powerOn 8.6.2008, 22:17 |
| Сам ищу такую возможность. Но пока не нашёл, ибо стандартного пути (например EJB-singleton, который появится в версии 3.1) видимо нет. Поэтому, возможно, придётся реализовывать такой сервис как Stateless Bean, а состояние хранить в БД. Извращение конечно, (по крайней мере мне не нравится... неестественно как-то...) но пока другого пути я не вижу. Впрочем, ещё как вариант классический singleton, но тут могут возникнуть споры, по поводу зло это или нет. |
| Автор: VSergeyV 9.6.2008, 11:16 |
нашел еще под используемый App Server WebLogic класс weblogic.application.ApplicationLifecycleListener с событиями (postStart, postStop, preStart, preStop), даже лучше таймера будет) |
| Автор: mindflyer 9.6.2008, 17:38 |
| Под JBoss для этих целей используем MBean's. Более того, у нас практически вся логика именно в них реализована, а EJB3 используем для секьюрити и кластеризации. |
| Автор: VSergeyV 10.6.2008, 08:33 |
а подробней можно? |
| Автор: powerOn 10.6.2008, 11:16 |
| Это не портируемое решение. С JBoss тогда не слезешь. |
| Автор: ki22 3.8.2010, 15:11 |
| Может я не понял вопрос, но если на клиенте создать remote-представление на Stateful бин, то он (вернее его состояние) будет жить, пока живет его представление и не вызывается метод Remote |
| Автор: ki6opr 4.8.2010, 03:33 |
| а нельзя добавить веб приложение к проекту ? и используя ServletContextListener создавать нужный объект при запуске ? у меня так в биллинге (написан на EJB) запускается Quartz (планировшик) который уже запускает нужные службы (типа обработки зависших транзакций, уведомлений клиентам и тд) которые должны запускаться через некоторые промежутки времени. и все замечательно переносимо, потому что стандартно (разработка на Glassfish а продакшен на Jboss) |