RAD (Rational Application Developer) - очистка против публикации и перезапуск - PullRequest
5 голосов
/ 23 февраля 2010

В настоящее время я использую среду Spring 3.0 в среде websphere 6.1. Я использую IDE RAD (Rational Application Developer) 7.5. Вчера вечером я работал над проблемой и обнаружил, что мой код не обновлялся на сервере на 100% после внесения изменений в мое рабочее пространство. Мой вопрос - в чем разница с точки зрения веб-сферы между следующими:

  1. Перезапуск всего сервера с установленным EAR
  2. Очистка EAR в WebSphere
  3. Нажав на проект и выбрав Опубликовать

Имеют ли другие серверы приложений / IDE такие же проблемы с синингом при разработке приложений J2EE?

Ответы [ 2 ]

5 голосов
/ 23 февраля 2010

С RAD вот поведение по умолчанию. Когда вы «очищаете», он избавляется от скомпилированных объектов и воссоздает их через «build all», а затем выполняет «публикацию». Когда вы «строите», он создает все, что считает нужным, а затем «публикует». Когда вы «строите все», он строит все объекты, а затем «публикует».

Когда вы (или ваша IDE с помощью приведенных выше команд) выполняете «публикацию», он берет все ваши скомпилированные объекты и развертывает их на сервере, который вы настроили для этого проекта (с помощью горячей замены, если сервер работает ). Горячие замены работают хорошо для некоторых вещей (например, JSP), но не так хорошо для других вещей (файлы конфигурации, EJB и т. Д.). Если вы не можете правильно выполнить «горячую» замену, вам нужно отскочить от сервера.

Например, если у вас есть настройка RAD для автоматической сборки, ваш сервер работает, и вы измените EJB, что произойдет:
1. EJB будет скомпилирован
2. Если проект в порядке, RAD развернет ваши изменения
3. Сервер, вероятно, не сможет принять ваши изменения, поэтому сервер продолжит выполнение старого кода

Когда это происходит, отказов сервера, и код будет поднят.

2 голосов
/ 07 августа 2010

Перезагрузка сервера займет некоторое время, но обязательно перезагрузит файлы, если они существуют в файловой системе. Я не уверен, что нужно вызывать команду «Очистить» из представления «Серверы».

Если вы вызываете Публикация в представлении Серверы, RAD перезапустит приложение на сервере. Тем самым изменения обычно фиксируются.

Вам необходимо понять, какие изменения вы сделали, и посмотреть, что требуется WebSphere Application Server для их загрузки. Если вы прокрутите до конца связанной записи справки, вы увидите, что для каждого типа модуля JavaEE имеется ссылка на документ, который описывает, что необходимо сделать для получения изменений. http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/trun_app_hotupgrade.html

В противном случае вы должны понимать весь жизненный цикл того, что происходит, от изменения до получения его в браузере, например изменение файла, файл скомпилирован, подготовка к выполнению развертывания, загрузчик классов видит изменение, замечает, что приложение должно быть перезапущено, пользователь вызывает команду Republish для перезапуска приложения на сервере, пользователь обновляет веб-страницу, Firefox показывает в Firebug Изменено время последнего изменения в заголовке HTTP.

Я не уверен, что означает «горячая замена», но при отладке сервера замена метода «горячего кода» может заменить класс на отлаженном сервере, если на него нет ссылки или класс не изменился.

Публикации на этом сайте являются моими собственными и не обязательно отражают позиции, стратегии или мнения IBM

...