|
|
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
А возможно ли как то заменять на tomcat заменять классы и сервлеты не перезагружая томкат, не используя IDEA замена происходит через git ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 08:02 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
На время отладки не пакуем приложение в jar, а размещаем структуру каталогов в WEB-INF/classes. Это упрощает замену отдельных классов. Перегрузка приложения происходит если обновить дату-время web.xml или описатель контекста приложения. Tomcat при этом не перегружается, только само приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 08:30 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, А состояние памяти таким же останется? К примеру, значения статических полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 09:37 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
xProBasil A. Sidorov, А состояние памяти таким же останется? К примеру, значения статических полей. Нет, конечно. Томкат делает полный редеплой модуля. Значения можно перенести только через HttpSession. Другие контейнеры умеют менять классы, без редеплоя модуля. Но я не знаю способен ли Томкат на такое. И сомневаюсь что статические поля переживают такую замену. Всегда можно купить JRebel. Он, вроде, готов и для использования в продакшне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 09:41 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, а parallel deployment не поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 09:47 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
smackmychiBlazkowicz, а parallel deployment не поможет? Чему поможет? Там тоже перенос всех данных через HttpSession. Эта фича помогает обновлять приложение без остановки. Но перенос состояния между модулями через статику или ещё как она не реализует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 09:54 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Очень странно, я вот когда под меняю что-то в методе класса (без изменения сигнатуры методов), то при компиляции мне idea говорит - n классов успешно перезагружены (при этом используется tomcat). Изменения вступают в силу, при этом состояния памяти тоже сохраняется. Но если меняется сигнатура, то классы не обновяться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 09:58 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
xProОчень странно, я вот когда под меняю что-то в методе класса (без изменения сигнатуры методов), то при компиляции мне idea говорит - n классов успешно перезагружены (при этом используется tomcat). Изменения вступают в силу, при этом состояния памяти тоже сохраняется. Но если меняется сигнатура, то классы не обновяться. Это фича JPDA, называется Hotswap. Используется при отладке. Елдос же внятно указал что обновлять нужно без IDE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 10:03 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Я просто интересуюсь, чтобы понять как это работает. А чем отличается замена *.class файлов и обновления web.xml от кнопки reload у корня сайта в manager tomcat'a ? У меня часто бывает, что при обновлении через кнопку reload tomcat через некоторое время загружает процессор на полную и перестаёт отвечать на запросы, приходиться перезапускать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 10:11 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
xProЯ просто интересуюсь, чтобы понять как это работает. Задавайте конкретные вопросы. xProА чем отличается замена *.class файлов и обновления web.xml от кнопки reload у корня сайта в manager tomcat'a ? Для Tomcat - ничем. Замену *.class он может сразу и не обнаружит. А вот web.xml обнаруживает сразу и редеплоит модуль, если autoDeploy=true. - Возможно в последних версиях и появилась функциональность обновлять только классы. Не уверен. - Надо смотреть доки, возможны дополнительные настройки по этому вопросу. Помню в JBoss был довольно гибкий механизм. Можно было указать какие именно файлы проверять на замену и как часто. xProУ меня часто бывает, что при обновлении через кнопку reload tomcat через некоторое время загружает процессор на полную и перестаёт отвечать на запросы, приходиться перезапускать. Пермген утекает, наверное. Надо логи читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 10:21 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovНа время отладки не пакуем приложение в jar, а размещаем структуру каталогов в WEB-INF/classes. Это упрощает замену отдельных классов. Перегрузка приложения происходит если обновить дату-время web.xml или описатель контекста приложения. Tomcat при этом не перегружается, только само приложение. у меня работает томкат и перезагрузка приложения совсем не желательна, или оно как то отличается от перезагрузки томката? и если мне приходится менять класс, тогда мне приходится давать ему другое имя? что за дата время в web.xml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 11:28 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Елдосу меня работает томкат и перезагрузка приложения совсем не желательна, или оно как то отличается от перезагрузки томката? RTFM Tomcat Parallel Deployment Елдоси если мне приходится менять класс, тогда мне приходится давать ему другое имя? То что? Елдосчто за дата время в web.xml У файлов в файловой системе существуют атрибуты. Время создания. Время последней модификации и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 11:30 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Елдосу меня работает томкат и перезагрузка приложения совсем не желательна, или оно как то отличается от перезагрузки томката?Короткий квалифицированный ответ - да, отличается. Сервлет-контейнер, например, поднимает коннекторы, настраивает realm-ы и т.п. Далее контейнер развёртывает одно или несколько приложений. Если развёрнуто несколько приложений, а перегружается только одно, работа остальных приложений никак не затрагивается. И, в любом случае, перегрузка приложений не затрагивает, грубо говоря, то, что было инициализировано в server.xml. Параллельное развёртывание позволяет "дообслужить" текущие запросы на старой версии приложения, одновременно принимая новые запросы в новой. Это минимизирует заметность обновления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 11:55 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Елдоси если мне приходится менять класс, тогда мне приходится давать ему другое имя?Нет, конечно. Сначала контейнер выгрузит приложение, затем загрузит заново, честно прочитав данные из каталога приложения. Разумеется, возможны оптимизации, исключающие перечитывание с диска файлов, если содержащиеся в них классы не менялись, но я не разбирался делается ли такая оптимизация в реальной жизни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 12:01 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЕлдоси если мне приходится менять класс, тогда мне приходится давать ему другое имя?Нет, конечно. Сначала контейнер выгрузит приложение, затем загрузит заново, честно прочитав данные из каталога приложения. Разумеется, возможны оптимизации, исключающие перечитывание с диска файлов, если содержащиеся в них классы не менялись, но я не разбирался делается ли такая оптимизация в реальной жизни. я хотел поставить восклицательный знак, имел ввиду что сейчас я делаю так, чтобы без перезагрузки воткнуть класс я даю ему другое имя. а можно ли как то без перезагрузки приложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 12:59 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Елдосчтобы без перезагрузки воткнуть класс я даю ему другое имя. а можно ли как то без перезагрузки приложения?JRebel уже упоминали. Сам я его даже не смотрел, но дело не в этом ... Я до сих пор не могу понять трагизма перезагрузки приложения. Цель какая? Пойти на принцип? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 13:02 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЕлдосчтобы без перезагрузки воткнуть класс я даю ему другое имя. а можно ли как то без перезагрузки приложения?JRebel уже упоминали. Сам я его даже не смотрел, но дело не в этом ... Я до сих пор не могу понять трагизма перезагрузки приложения. Цель какая? Пойти на принцип? нет это очень критично, как бы даже на секунду нельзя остановить, систему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 14:25 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Елдоснет это очень критично, как бы даже на секунду нельзя остановить, систему RTFM Tomcat Parallel Deployment ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 14:28 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЕлдоснет это очень критично, как бы даже на секунду нельзя остановить, систему RTFM Tomcat Parallel Deployment не нашел внятной информации по этой теме, могли бы ли вы объяснить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 08:20 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
Елдосне нашел внятной информации по этой теме, могли бы ли вы объяснить. Словарь в зубы и вперёд. http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Parallel_deployment Не нужно останавливать старую версию war-модуля при установке новой. Новая ставиться параллельно и обслуживает всех новых клиентов. Старая версия обслуживает старых клиентов. Через некоторое время "старые" клиенты заканчиваются и тогда можно старую версию модуля удалить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 09:46 |
|
||
|
замена класса не перезагружая томкат
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЕлдосне нашел внятной информации по этой теме, могли бы ли вы объяснить. Словарь в зубы и вперёд. http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Parallel_deployment Не нужно останавливать старую версию war-модуля при установке новой. Новая ставиться параллельно и обслуживает всех новых клиентов. Старая версия обслуживает старых клиентов. Через некоторое время "старые" клиенты заканчиваются и тогда можно старую версию модуля удалить. Большое спасибо я понял вас ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 09:51 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38805842&tid=2126258]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
137ms |
get topic data: |
8ms |
get forum data: |
1ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 470ms |

| 0 / 0 |
