Я заметил, что оба варианта доступны во время запуска Jboss, и они оба перекомпилируют проект (я заметил, что «make» работает с обоими). Я видел this question, принятый ответ имел смысл, но я не был уверен, что означает «горячая замена». Каков возможный пример изменения, которое может быть зарегистрировано без перезагрузки сервера?В чем разница между перезапуском сервера JBoss и его повторным развертыванием
ответ
Ваш вопрос необходимо больше информации, чтобы ответить полностью, но вот некоторые основные понятия:
- Горячая замена просто заменяя файлы проекта в папку развертывания сервера приложений (неупакованных, то есть не .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 в журналах), тогда вам нужно очистить (развернуть, остановить, запустить, затем развернуть)
Я вижу, так что это вопрос поддержки JBoss и формата файла. Спасибо за ответ , – Siddhartha
Что значит «они оба перекомпилируют проект :. Используете ли вы Maven/Ant для управления JBoss? Или, может быть, Eclipse/NetBeans/...? – JScoobyCed
Я использую Maven, забыл упомянуть. – Siddhartha