Можно ли делать Hotswapping из ATG классов

Развертывание, за которым мы следуем, заключается в том, что мы используем runAssembler.bat для создания файла ear и его развертывания на сервере приложений. Мы используем weblogic и jboss для тестирования модулей, которые мы создали. Однако для каждого небольшого изменения нам нужно запустить runAssembler, создать новое ухо, развернуть его на сервере приложений и перезапустить сервер.

Я хотел бы узнать, нашел ли кто-нибудь способ Hotswapping файлов классов, сгенерированных кодом, который мы пишем в среде ATG, в weblogic или jboss.

3 ответа

Решение

Прикрепив вашу IDE к вашему серверу приложений через порт отладки, вы, как правило, можете выполнять горячую замену. Настройка этого в Eclipse и JBoss описана здесь, здесь и здесь. Здесь есть некоторая информация для настройки в WebLogic.

Присоедините ваш отладчик, отредактируйте java-файл, нажмите "сохранить" и с горячей заменой кода в вашей IDE теперь он должен обновить файл запущенного класса. В Eclipse обычно выдает всплывающее окно, если не удалось выполнить синхронизацию. Если вы используете Eclipse, убедитесь, что под проектами установлен флажок "Автоматически строить", иначе вы будете ждать вечно. У меня не было проблем с этим с помощью JBOSS (взорванный EAR EAR) и с переменным успехом в WebSphere 7. Это также может быть разумным, чтобы убедиться, что тот же JAVAC, который вы используете для компиляции вашей сборки, тот, который загружен в вашу IDE. путь компиляции.

Другой способ хотя бы сократить время сборки / развертывания - развернуть распакованное / разорванное EAR и просто скопировать файлы классов (вы можете использовать плагин Eclipse FileSync) и перезапустить сервер.

Есть также несколько коммерческих вариантов, таких как JRebel

В нашей организации мы успешно пользовались DCEVM. Он просто исправляет ваш JDK (в Windows: jvm.dll).

  1. Загрузите и исправьте свой JDK
  2. Запустите свой JBoss/Weblogic с исправленным JDK
  3. Установите установленные JRE Eclipse так, чтобы они указывали на исправленный JDK (перезапустите и перестройте один раз)
  4. Запустите сервер, запустите отладчик и подключитесь
  5. Убедитесь, что в представлении отладки Eclipse отображается "Dynamic Code Evolution VM" (вместо чего-то вроде "HotSpot VM")
  6. Измени свой код, и вуаля!

Вы можете сделать это с JRebel. После горячей замены вам не нужно перезагружать сервер, только перезагрузите развертывание из Weblogic.

Другие вопросы по тегам