| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Настройка Tomcat для автоматической загрузки |
| Автор: vns955 4.11.2009, 02:15 |
| Всем здрям! Подскажите плз как настроить Tomcat, чтоб при записи в папку WEB-INF\classes обновленных .class файлов он сразу же их перезагружал без необходимости перезагрузки самого Tomcat. Заранее благодарен. |
| Автор: garbuz 4.11.2009, 02:42 |
| А разве из коробки не работает? Помнится так делал однажды, только не на томкате. |
| Автор: COVD 4.11.2009, 14:27 |
| Перезагружать отдельные классы в работающем приложении весьма рискованное дело. Томкат успешно справляется с перезагрузкой приложения целиком. Удаляете war из webapps - Томкат выполняет undeploy. Потом кладете новый war - Томкат выполняет autodeploy. В установках Томката по умолчанию autodeploy=true. |
| Автор: vns955 4.11.2009, 15:02 |
| Я не работаю с war. Я раскидываю всё по соответствующим папкам и всё. Хорошо, если это рискованное дело, то я готов переписать всю папку classes. Будет ли в этом случае их Tomcat подхватывать? Что для этого нужно? |
| Автор: COVD 4.11.2009, 16:30 | ||||
Так начните работать. Это общепринятая практика. Любой IDE создает war автоматически при компиляции проекта.
Думаю (и надеюсь), что нет. Томкат периодически сканирует директорию. Когда он обнаруживает, что исчез или появился один файл war, то тут относительно просто определить, что приложение следует удалить или запустить. Когда же обновляются много классов (последовательно во времени), это сложнее. В составе Томката есть веб-приложение - менеджер. Там, если не ошибаюсь, есть возможность сделать deploy-undeploy приложения вручную. Копируете обновленные классы и жмете кнопку в менеджере. |
| Автор: vns955 4.11.2009, 17:04 | ||||
Насчет NetBeans - да, насчет Eclipse с которым я работаю - нет пока, - он war не генерит либо я что-то не так настроил либо плагина нет (Eclipse 3.5 SDK Galileo).
А вот это уже интересней. И он позволяет так заливать отдельные class файлы? |
| Автор: ming 4.11.2009, 20:11 | ||
поставьте Eclipse Ganymede, там есть WTP для работы с Web-приложениями. |
| Автор: vns955 10.11.2009, 16:13 | ||
Я научился перегружать отдельные классы через restart приложения через manager. Мне сказали и сам увидел что это намного быстрее чем работа через war-файлы. Разве такая работа небезопасная? |
| Автор: COVD 10.11.2009, 19:29 | ||
Если вы делаете рестарт приложения (не Томката), то перегружаете приложение, а не отдельные классы. Конечно тут все замечательно. Из общих соображений ясно, что поменять класс на ходу безопасно, если обьекты старой версии уже не используются приложением. Например, обьект каждый раз создается, выполняет свою задачу в отдельном потоке и выбрасывается. Сервлеты же создаются в одном экземпляре и обслуживают все запросы. Ясно, что и в этом случае механизм отлажен - мы же можем успешно редактировать jsp "на лету". Однако в общем случае если в приложении есть какие-то классы другого назначения, то есть опасение. |
| Автор: Juggernaut 12.11.2009, 10:56 |
| Скорее всего имеется в виду т.н. On the fly class reloading Т.е. отсутствие необходимости ждать перезапуска всего приложения на AppServer в случае внесения изменений в один класс. Я одно время изучал данный вопрос, но одна IDE или AppServer из коробки такую функцию не поддерживает. Есть сторонние продукты, например я использовал JavaRebel, но все они платные. |
| Автор: vns955 12.11.2009, 17:07 | ||||
to Juggernaut
"Из коробки" - имеется ввиду работа с war?
А крак где-нибудь есть? |
| Автор: vns955 13.11.2009, 14:23 | ||
COVD
Незнаю, у меня не получается "на лету". Только с релоадингом приложения. |
| Автор: Egik2 21.11.2009, 00:58 |
| ECLIPSE все поддерживает. нажимаешь правой кнопкой на проект, export и выбираешь war |
| Автор: vns955 23.11.2009, 15:13 |
| Egik2 А где там war выбирать? |