Можно ли делать 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
).
- Загрузите и исправьте свой JDK
- Запустите свой JBoss/Weblogic с исправленным JDK
- Установите установленные JRE Eclipse так, чтобы они указывали на исправленный JDK (перезапустите и перестройте один раз)
- Запустите сервер, запустите отладчик и подключитесь
- Убедитесь, что в представлении отладки Eclipse отображается "Dynamic Code Evolution VM" (вместо чего-то вроде "HotSpot VM")
- Измени свой код, и вуаля!
Вы можете сделать это с JRebel. После горячей замены вам не нужно перезагружать сервер, только перезагрузите развертывание из Weblogic.