Не позволяйте IBM RAD перезапускать приложения при изменении кода.

Я использую IBM RAD 9.0 с WebSphere 8.5. Я открыл параметры сервера и выбрал "Никогда не публиковать автоматически" в разделе "Публикация".

Однако если я внесу большие изменения в код, IBM RAD перезапустит приложение. Если я внес некоторые изменения в проект библиотек, используемых всеми приложениями, RAD перезапустит все приложения. Даже если я запускаю внешнюю сборку maven, он продолжает перезапускать приложения (что еще хуже, он строит проект параллельно с maven, что часто вызывает конфликты).

Это занимает много времени и, что еще хуже, просто не работает. Перезапущенные приложения запускаются неправильно, не могут подключиться к важным службам (таким как механизм JSF или авторизация LDAP) или даже не видят свои собственные классы! Поэтому я должен переиздавать вручную, что часто требует дополнительной очистки.

В результате, прежде чем вносить какие-либо существенные изменения в код, такие как рефакторинг или изменение общего API, мне приходится останавливать веб-сферу.

Есть ли способ переопределить это поведение? Я ожидал, что выбора «Никогда не публиковать автоматически» должно быть достаточно, но, по-видимому, это не мешает RAD/WebSphere перезапускать приложения, когда ОНИ сочтут это необходимым.


person Danubian Sailor    schedule 13.06.2014    source источник


Ответы (2)


Наиболее безопасные варианты предотвращения перезапуска приложений следующие:

  • In the Server properties (dbl click on server) set:
    • on Publishing tab set - Never publish automatically
    • Настройки публикации для набора WebSphere - Запустить сервер с ресурсами на сервере

В противном случае, если ресурсы изменены и вы запускаете «из рабочей области», сервер может решить перезапустить приложение.

Если вы строите с помощью maven, отключите автоматическую сборку в меню «Проект»> «Создать автоматически».

Если вы планируете внести много изменений или ваше приложение не работает, вы всегда можете удалить проект с сервера, внести изменения, а затем добавить проект на сервер вместо перезапуска сервера.

person Gas    schedule 13.06.2014
comment
Вы видите, что приложение перезапускается, потому что для RAD установлено значение build automatically, а для интеграции WAS установлено значение «Выполнить с ресурсами в рабочей области». Последнее означает, что вместо развертывания в <profile>/installedApps приложение развертывается на месте в рабочей области RAD. Классы загружаются WAS из рабочей области (например WebContent/WEB-INF/classes). Впоследствии RAD компилирует изменения .java при сохранении (автоматическая сборка) в WEB-INF/classes. Это приводит к тому, что WAS перезапускает модуль приложения. Если ваше приложение/модуль запускается медленно (например, с большой конфигурацией Spring), это болезненно. - person Scott Heaberlin; 14.06.2014
comment
Кажется, это работает хорошо. Зачем людям вообще нужна опция «запускать из рабочей области»? Я не вижу сейчас никакой выгоды от этого... - person Danubian Sailor; 16.06.2014
comment
Переиздание происходит быстрее, если оно «из рабочей области», так как не нужно создавать ухо, загружать его на сервер и извлекать. Но это хорошо работает только для очень простых проектов. - person Gas; 16.06.2014
comment
Ну, запуск с сервера, а не из рабочей области, имеет отличный побочный эффект, который я заметил. Изменения, например, на страницах JSF не видны после повторной публикации, пока вы не очистите весь проект. После этого republish переиздает также те приложения, которые остались без изменений. Вероятно, поэтому в моей организации рекомендуется установить «запуск из рабочей области». Как я вижу, для обеих настроек есть огромные временные компромиссы. - person Danubian Sailor; 16.06.2014
comment
Это очень странное поведение, которое вы описываете ... Повторная публикация обычно работала нормально для меня, когда она была настроена на запуск с сервера. Но прежде чем переключать конфигурацию с рабочей области на сервер, обязательно удалите все проекты с сервера. В противном случае иногда может быть замечено некоторое неожиданное поведение :-). Мне никогда не приходилось чистить проект, если что-то не подхватывается, я добавляю/удаляю с сервера в заданном проекте. - person Gas; 16.06.2014

Можете ли вы проверить запуск окна-настройки-сервера: при необходимости перезагрузите сервер: никогда

person Niek Vandael    schedule 13.06.2014