2013-08-21 3 views
1

Я заметил, что оба варианта доступны во время запуска Jboss, и они оба перекомпилируют проект (я заметил, что «make» работает с обоими). Я видел this question, принятый ответ имел смысл, но я не был уверен, что означает «горячая замена». Каков возможный пример изменения, которое может быть зарегистрировано без перезагрузки сервера?В чем разница между перезапуском сервера JBoss и его повторным развертыванием

+0

Что значит «они оба перекомпилируют проект :. Используете ли вы Maven/Ant для управления JBoss? Или, может быть, Eclipse/NetBeans/...? – JScoobyCed

+0

Я использую Maven, забыл упомянуть. – Siddhartha

ответ

2

Ваш вопрос необходимо больше информации, чтобы ответить полностью, но вот некоторые основные понятия:

  • Горячая замена просто заменяя файлы проекта в папку развертывания сервера приложений (неупакованных, то есть не .war/.ear, но все отдельные файлы). Это обычно быстрее, потому что изменения сразу видны в веб-приложении. Но это не всегда возможно/поддерживается серверами приложений, и часто, если вы с горячей заменой .jar-файлы, сервер приложений не поднимает его или не путает.
  • Перезапуск JBoss остановит все существующие службы (EJBs, пул, очереди, сообщения ...) и перезапустит их. Это самый чистый способ запуска вашего приложения (самый чистый из них будет разворачиваться, перезагружаться и развертываться)
  • Redeploy означает, что ваше приложение и его службы сначала удаляются из JBoss, но другие службы устанавливаются на уровне сервера (Messaging, Pools , JMX, ... зависит от ваших фактических настроек) все еще развернуты. Затем приложение развертывается (копируется из папки DEV или .WAR/.ear в JBoss) веб-приложение

Как правило, вы бы горячей замены (в конце концов, вручную). (X) HTML/.jsp/.jsf/images/.js/.css безопасно, так как JBoss не нуждается в их обработке. Изменение кода в классах Java, развернутых как .class в WEB-INF/классах, часто может быть заменено на «горячую» замену.

Изменение кода в файлах Java, развернутых как .jar, почти всегда будет нуждаться, по крайней мере, в перераспределении. Некоторые правильно настроенные серверы приложений, поддерживающие OSGi, являются более гибкими при горячей замене полного приложения (я знаю, что Glassfish делает, но я не знаю, какие конкретные настройки необходимы)

Наконец, при разработке иногда несколько перераспределений приводят к памяти (часто вы получаете исключение OutOfMemory в журналах), тогда вам нужно очистить (развернуть, остановить, запустить, затем развернуть)

+0

Я вижу, так что это вопрос поддержки JBoss и формата файла. Спасибо за ответ , – Siddhartha