| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > tomcat. Автоматическая загрузка приложений. |
| Автор: olegrolik 7.12.2007, 17:50 |
| После запуска томката, запускаются все приложения. Как сделать так, чтобы они не запускались? |
| Автор: Samotnik 7.12.2007, 17:52 |
| В броузере строчка http://localhost:8080 Выбераеш Tomcat Manager и делаеш всем поректам там стоящим STOP |
| Автор: Kangaroo 7.12.2007, 18:06 |
| olegrolik, была похожая тема. Там помню много вариантов предлагали. Поищите.. |
| Автор: olegrolik 7.12.2007, 20:18 |
| Kangaroo, ищу уже пол часа, задолбался. Наверняка дело в одной строке какого-нибудь xml-файла. |
| Автор: Kangaroo 7.12.2007, 22:35 |
| olegrolik, м-да, что-то я сам не могу найти... или я не умею пользоваться, или .. Ладно, попробую найти у себя в памяти: 1) Спрятать проект на один подкаталог ниже webapps, томкет не найдет его тогда 2) Испортить web.xml, тогда оно точно не поднимится.. Кто-нибудь помнит эту тему!? PS Нашлась http://forum.vingrad.ru/forum/topic-175050.html |
| Автор: olegrolik 8.12.2007, 12:36 |
| Я не об это спрашиваю. Объясню на пальцах. Томкат только что был запущен. Захожу в управление приложениями (manager) и вижу, что все приложения там "Start". Я хочу, чтобы все приложения были там "Stop"!! |
| Автор: ivg 9.12.2007, 00:11 | ||||
| Возможно start/stop предназначены для временного отключения вэб-приложений на работающем сервере. А для "полного" отключения deploy/undeploy(remove). Только ведь remove ещё не означает, что приложение будет удалено из файловой системы сервера. Вот вариант, который возможно вам подойдёт. 1. создаёте на сервере папку, например C:\mywebapp, распаковываете туда ваш .war. Либо переносите папку вашего приложения из ${catalina.home}\webapps в другое место. 2. там же на сервере создаёте файл, например c:\myapp.xml след. содержания:
Затем для "включения/выключения" приложения можно использовать Tomcat Manager:
нажимаете Deploy. Или через GET запрос http://localhost:8080/manager/deploy?path=/shocetake&config=file:/c:/myapp.xml В результате в папке ${catalina.home}\conf\Catalina\<hostname>\ появится файл shocetake.xml, и Tomcat "подхватит" приложение. Для "выключения" приложения делаете Undeploy. Заметьте, что при этом содержимое C:/mywebapp остаётся на месте, удаляется только файл shocetake.xml из ${catalina.home}\conf\Catalina\<hostname>\, в результате после перезапуска Tomcat приложение не будет запущено. |
| Автор: olegrolik 10.12.2007, 10:24 | ||||
Вот этот момент мне не понятен. Судя по всему, это xml-файл. Какой? Sorry. Всё понял ivg, спасибо. Я понял смысл этой идеи, но это не то, что мне нужно. Гораздо проще в менеджере нажимать кнопку STOP после старта томката. Вы просто меня не поняли. Уж не знаю как объяснить. Просто хочу зайти в manager и увидеть, что все приложения там остановлены. Должна быть опция такая в конфигурационном файле. Я уверен! |
| Автор: AlexeyVorotnikov 10.12.2007, 12:23 | ||
Ну неужели почитать документацию религия не позволяет??? Три дня ждать ответа, когда он находиться за несколько секунд!
Только предупреждаю: отключение deployOnStartup и autoDeploy выключит все приложения, в том числе и дефолтовое, и Tomcat Manager. Забыл ещё одну вещь сказать: вышеизложеное верно для Tomcat 6.0. Для других версий не проверял. |
| Автор: Kangaroo 10.12.2007, 12:33 |
| AlexeyVorotnikov, я думаю это разные вещи. Deploy и Start/Stop. olegrolik хочет, чтобы приложения были Stop, а для этой конфигурации они даже незадеплоятся. Или я ошибаюсь? |
| Автор: olegrolik 10.12.2007, 12:45 | ||||
А можно как-то запустить приложение без manager'а ? Kangaroo, получается, что запуск приложения при запуске томката, это и есть деплой. Даже если приложение уже развёрнуто. Т.е. этот вариант срабатывает. Жаль, что manager не работает :( |
| Автор: Kangaroo 10.12.2007, 13:27 |
Судя по http://tomcat.apache.org/tomcat-5.5-doc/deployer-howto.html страничке нужно autoDeploy="true". Только тогда можно будет без манагера, томкет автоматически будет деплоить измененные приложения. Но будет ли работать конфигурация AlexeyVorotnikov'a без autoDeploy="false" ? Проверь |
| Автор: olegrolik 10.12.2007, 13:41 |
| Kangaroo, не. Такой вариант не подходит. Я бы хотел, чтобы на сервере было два приложения, manager и myapp. По умолчанию myapp должно быть остановлено. Ну а manager нужен для управления приложением myapp. |
| Автор: Kangaroo 10.12.2007, 13:50 |
| olegrolik, а если одно приложение - почему бы просто не нажать стоп в менеджере? Или ты так часто перегружаешь Томкет? |
| Автор: AlexeyVorotnikov 10.12.2007, 15:08 |
| Что-то меня эта тема увлекла. Почитав доки (Причём, похоже, что доки отстают от версии самого Tomcat'а. Например, раздел Server Startup остался ещё от 5-ой версии.) |
| Автор: olegrolik 10.12.2007, 15:57 |
| Kangaroo, не хочу чтобы при рестарте сервака работало моё приложение. Допустим приложение остановлено и не работает. Произошёл плановый рестарт сервера. Сервак загрузился, загрузился томкат, и вместе с ним все приложения. И в том числе загрузилось то, которые было остановлено специально. Ну и получится, что оно загружено. Это не есть правильно. AlexeyVorotnikov, что ж... тогда придётся использовать то, что есть. Закрываем тему? |
| Автор: ivg 10.12.2007, 16:04 |
Гы. А вобще это хорошо. Согласен, что не предусмотрена. Принципиально можно сделать реализацию org.apache.catalina.Context, унаследовав от org.apache.catalina.core.StandardContext, которая не будет стартовать контекст, при старте сервера. В конфигурации, в теге <Context ..... > есть возможность указывать класс реализации. Но, в нашем случае, я думаю, "Овчинка не стоит выделки" |
| Автор: AlexeyVorotnikov 10.12.2007, 16:15 |
| Смотря, что за овчинка. Если такое поведение сервера абсолютно необходимо, можно и свою реализацию Context'а написать. |
| Автор: olegrolik 10.12.2007, 17:15 |
| ivg, "Овчинка не стоит выделки" согласен. AlexeyVorotnikov, а насчёт своей реализации, то получится, что при переносе приложения, веб сервер тоже прийдётся переносить. Это не есть хорошо. Вывод - так сделать не получится. Тему пока не закрываю - вроде не слабый наплыв сюда |
| Автор: Kangaroo 10.12.2007, 17:27 |
| olegrolik, можно еще написать ant таск, который сначала стартует томкет, а потом останавливает твое приложение. Это, так сказать, обходной вариант |
| Автор: olegrolik 10.12.2007, 18:03 |
| Kangaroo, я только знаю как запускать антовский скрипт через IDE. Да и всё равно это всё не то! Я придумал другой способ - управление сервлетом через сервлет. Ну это уже другая тема. Всем спасибо!!! |
| Автор: AlexeyVorotnikov 10.12.2007, 19:02 | ||
Ну и замечательно! Дальнейших вам успехов в остановке приложений и сервлетов! |