![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| vns955 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
Всем здрям!
Подскажите плз как настроить Tomcat, чтоб при записи в папку WEB-INF\classes обновленных .class файлов он сразу же их перезагружал без необходимости перезагрузки самого Tomcat. Заранее благодарен. |
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 8 Всего: 11 |
А разве из коробки не работает? Помнится так делал однажды, только не на томкате.
|
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Перезагружать отдельные классы в работающем приложении весьма рискованное дело. Томкат успешно справляется с перезагрузкой приложения целиком. Удаляете war из webapps - Томкат выполняет undeploy. Потом кладете новый war - Томкат выполняет autodeploy. В установках Томката по умолчанию autodeploy=true.
|
|||
|
||||
| vns955 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
Я не работаю с war. Я раскидываю всё по соответствующим папкам и всё. Хорошо, если это рискованное дело, то я готов переписать всю папку classes. Будет ли в этом случае их Tomcat подхватывать? Что для этого нужно?
|
|||
|
||||
| COVD |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Так начните работать. Это общепринятая практика. Любой IDE создает war автоматически при компиляции проекта.
Думаю (и надеюсь), что нет. Томкат периодически сканирует директорию. Когда он обнаруживает, что исчез или появился один файл war, то тут относительно просто определить, что приложение следует удалить или запустить. Когда же обновляются много классов (последовательно во времени), это сложнее. В составе Томката есть веб-приложение - менеджер. Там, если не ошибаюсь, есть возможность сделать deploy-undeploy приложения вручную. Копируете обновленные классы и жмете кнопку в менеджере. |
||||
|
|||||
| vns955 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
Насчет NetBeans - да, насчет Eclipse с которым я работаю - нет пока, - он war не генерит либо я что-то не так настроил либо плагина нет (Eclipse 3.5 SDK Galileo).
А вот это уже интересней. И он позволяет так заливать отдельные class файлы? |
||||
|
|||||
| ming |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 30.1.2009 Где: Новосибирск Репутация: нет Всего: 3 |
поставьте Eclipse Ganymede, там есть WTP для работы с Web-приложениями. |
|||
|
||||
| vns955 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
Я научился перегружать отдельные классы через restart приложения через manager. Мне сказали и сам увидел что это намного быстрее чем работа через war-файлы. Разве такая работа небезопасная? |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Если вы делаете рестарт приложения (не Томката), то перегружаете приложение, а не отдельные классы. Конечно тут все замечательно. Из общих соображений ясно, что поменять класс на ходу безопасно, если обьекты старой версии уже не используются приложением. Например, обьект каждый раз создается, выполняет свою задачу в отдельном потоке и выбрасывается. Сервлеты же создаются в одном экземпляре и обслуживают все запросы. Ясно, что и в этом случае механизм отлажен - мы же можем успешно редактировать jsp "на лету". Однако в общем случае если в приложении есть какие-то классы другого назначения, то есть опасение. Это сообщение отредактировал(а) COVD - 10.11.2009, 19:30 |
|||
|
||||
| Juggernaut |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 4.12.2005 Репутация: 1 Всего: 2 |
Скорее всего имеется в виду т.н. On the fly class reloading
Т.е. отсутствие необходимости ждать перезапуска всего приложения на AppServer в случае внесения изменений в один класс. Я одно время изучал данный вопрос, но одна IDE или AppServer из коробки такую функцию не поддерживает. Есть сторонние продукты, например я использовал JavaRebel, но все они платные. |
|||
|
||||
| vns955 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
to Juggernaut
"Из коробки" - имеется ввиду работа с war?
А крак где-нибудь есть? |
||||
|
|||||
| vns955 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
COVD
Незнаю, у меня не получается "на лету". Только с релоадингом приложения. |
|||
|
||||
| Egik2 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 29.7.2008 Где: Агудзера Репутация: 2 Всего: 11 |
ECLIPSE все поддерживает. нажимаешь правой кнопкой на проект, export и выбираешь war
-------------------- Три великие добродетели программиста: лень, нетерпение и самомнение (Larry Wall) a-nav.com developer-blog.ru world-poetry.org |
|||
|
||||
| vns955 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
Egik2
А где там war выбирать? |
|||
|
||||
![]()
|
| Правила форума "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. |