![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Fameing |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 21.2.2006 Где: Ukraine. Kiev Репутация: 2 Всего: 2 |
Возможно ли сделать что-то подобное для того как только запускается Application или весь TomCat то и запустить какой ныбуть класс ?
В классе есть метод main() и вот его нужно запустить. |
|||
|
||||
| Pantein |
|
|||
![]() Java developer Профиль Группа: Участник Сообщений: 37 Регистрация: 12.6.2005 Где: Минск Репутация: 2 Всего: 3 |
...очень просто...создай сервлет, укажи в web.xml параметр load-on-startup равный 0. Пример:
и в методе init сервлета дергай нужный тебе класс и его метод. Сервлет будет инициализироваться сразу при запуске сервера или приложения и соответственно запускать нужный тебе метод. |
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 3 Всего: 24 |
Боюсь, Pantein, не совсем понял задачу, так как у класса есть main() это наверняка не сервлет.
Запустить класс при запуске Tomcat просто, нужно просто добавить в bat файл строку: java -classpath <bla-bla-bla> MyClass А как запускать при старте webapp это ещё подумать нужно. Не скромный вопрос, а зачем это нужно? -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| Fameing |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 21.2.2006 Где: Ukraine. Kiev Репутация: 2 Всего: 2 |
Как сказал Pantein все заработало. 3,14 ты прав это не сервлет а простой клас.
а в сервлете зделал так
|
||||
|
|||||
| Fameing |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 21.2.2006 Где: Ukraine. Kiev Репутация: 2 Всего: 2 |
А какие есть еще параметры в <load-on-startup> ? |
||||
|
|||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 3 Всего: 24 |
Это не очень хороший код, потомучто в памяти у тебя будет висеть ничего не делающий сервлет, к-ый только и сделал что запустил таймер. Это сообщение отредактировал(а) 3,14 - 15.3.2006, 12:16 -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| Pantein |
|
|||
![]() Java developer Профиль Группа: Участник Сообщений: 37 Регистрация: 12.6.2005 Где: Минск Репутация: 2 Всего: 3 |
To3.14 Я правильно понял задачу
Fameing параметр <load-on-startup> это order для инициализации сервлета, если этого параметра нету, то определение порядка инициализации и ее время отводится сервлет контейнеру. |
|||
|
||||
| Fameing |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 21.2.2006 Где: Ukraine. Kiev Репутация: 2 Всего: 2 |
Ну а как подругому можно реализовать ? Если по таймеру лезу в базу. А то что пришло исползую на протежении 30 сек в других сервлетах и jsp.
|
|||
|
||||
| Pantein |
|
|||
![]() Java developer Профиль Группа: Участник Сообщений: 37 Регистрация: 12.6.2005 Где: Минск Репутация: 2 Всего: 3 |
ели действие надо будет проводить постоянно, или часто, тогда, используй Quartz, тебе сюда
http://www.opensymphony.com/quartz/ |
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 3 Всего: 24 |
А разве нельзя это приложение запускать отдельно от web приложения, как я понял RTimerTask туда ничего не передаёт. Пусть у тебя запуск RTimerTask так же будет прописан в какой нибудь start up скрипт, обычно так делают.
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| Fameing |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 21.2.2006 Где: Ukraine. Kiev Репутация: 2 Всего: 2 |
Скорее всего RTimerTask нужно запукать всесте с приложением так-как через метод getTime() нужно получать дату и время. Или можно поместить в path class и оттуда я тоже буду получать информацию ?
|
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 3 Всего: 24 |
Fameing, тогда запускай таймер из какого либо существующего сервлета, а не создвай новый, это должен быть тот сервлет, к-ый использует данный таймер.
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| Fameing |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 21.2.2006 Где: Ukraine. Kiev Репутация: 2 Всего: 2 |
Просто есть проблема в том что данние нужно получить до того когда будет использован сервлет.
|
|||
|
||||
| alexsmirnov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 23.8.2005 Репутация: 5 Всего: 7 |
Лучше не в сервлете, а в context Listener - запускается до всех сервлетов, не остается в памяти ( а если надо - можно поместить в servlet Context ) cm javax.servlet.ServletContextListener .
Конфигурится в web.xml или tld |
|||
|
||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 5 Всего: 6 |
Fameing, наиболее правильным будет решение с листнером контекста сервлета... Потому что код, предложенный тобой выше, рабочий, но так делать не корректно...
alexsmirnov, Но листнер то как раз все время висит, но один для всех сервлетов... (ИМХО) -------------------- Задаю много глупых вопросов.... |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |