Настроить: JRebel + внешний JBoss + Eclipse + развертывание на основе Ant

Я пытаюсь настроить JRebel

Описание среды разработки:

  • Eclipse Juno IDE
  • JBoss 6.0.1 - Запуск извне из eclipse (на той же машине, а не удаленно)
  • Отладка: удаленная, все функции горячей замены отключены
  • Сценарий Ant, который: компилирует, развертывает и переносит целевую WAR в JBoss.

Раньше я не использовал JRebel, руководство по настройке показалось мне довольно простым, но у меня проблемы с моим конкретным случаем.

Весь исходный код (включая jsps и изображения) компилируется в папке bin проекта.

Сценарий Ant создает WAR, который содержит отдельно JSP, файлы стилей, свойств и скомпилированные классы приложений, которые помещаются в специальный jar-файл в / web-inf / lib / вместе с библиотеками. Сценарий переносит сгенерированную WAR в JBoss и запускает сервер.

Куда я должен поместить свой rebel.xml (я полагаю, в папку bin моего проекта ?!) и что я должен написать в нем, чтобы jrebel-hotswapped изменения кода внутри jar-файла внутри войны, развернутой на сервере JBoss.

Я предоставил сценарий запуска JBoss с необходимыми аргументами виртуальной машины jrebel.

Спасибо заранее!


person Erik Kaju    schedule 20.06.2013    source источник


Ответы (1)


rebel.xml должен оказаться в WEB-INF / classes вашего приложения. Если у вас есть зависимости в папке WEB-INF / lib, тогда каждый архив должен иметь свой собственный выделенный файл конфигурации rebel.xml.

См. документ

Если вы выполняете развертывание с использованием Eclipse WTP, то его можно поместить в исходную папку. Но если вы используете Ant для создания WAR, вы должны убедиться, что ваш Ant-скрипт обнаружит файл rebel.xml и скопирует его в правильное место.

Пути в rebel.xml должны указывать на папку, в которой находятся скомпилированные классы, то есть место, в которое ваша IDE компилирует эти классы.

person Anton Arhipov    schedule 21.06.2013
comment
Привет, я ценю ваш личный вклад как инженера jrebel в публичные обсуждения. Это очень хорошо;) Я получил его, работая с java-классами и файлами свойств (расположенными в: ‹jar›, который находится внутри ‹war› / WEB-INF / lib). Но, к сожалению, еще не с JSP (находится в ‹war› / jsp). (два разных файла rebel.xml) - person Erik Kaju; 25.06.2013
comment
Я полагаю, что JSP являются частью веб-модуля и находятся где-то в каталоге WEB-INF, возможно, в каком-то подкаталоге? Тогда rebel.xml просто должен иметь тег ‹web› с тегом ссылки, указывающим на каталог с ресурсами, и он должен быть сопоставлен с целевым атрибутом ‹link›, который будет отображать ресурсы в соответствии с тем, как вы ссылаетесь к этим ресурсам в приложении. Если это не сработает для вас, обратитесь в службу поддержки JRebel - это может быть ошибка, связанная с конкретной версией JBoss. - person Anton Arhipov; 25.06.2013
comment
Структура немного сбивает с толку. Постараюсь уточнить: у самой WAR четыре каталога верхнего уровня - WEB-INF, META-INF, jsp, css. Функциональность Java находится в ‹WAR› / WEB-INF / lib / ‹JAR›, который содержит классы. Итак, нет, JSP находятся не внутри каталога WEB-INF, а рядом с ним в папке jsp. Это было очень похоже на упомянутую банку, классы не были внутри WEB-INF / classes, но там я смог настроить его, поместив rebel.xml только в банку (не в WEB-INF / classes). Я получил его таким, какой он есть, и он был разработан не мной. Надеюсь, мое описание понятно. - person Erik Kaju; 25.06.2013
comment
Таким образом, значение ссылки должно просто указывать на каталог, в котором файлы jsp находятся в вашем проекте. Однако значение целевого атрибута ссылки выводится из структуры архива - jps может находиться за пределами папки WEB-INF в рабочей области вашего проекта, но я уверен, что они копируются в WEB-INF при сборке WAR - person Anton Arhipov; 25.06.2013
comment
JSP находятся вне WEB-INF как в моем проекте, так и в собранной WAR, я заглянул в войну, чтобы убедиться. Может быть, я должен поместить rebel.xml в WEB-INF и указать как-нибудь вроде ../jsp/? Запуск сервера показывал, что отслеживается правильная папка с JSP, но внутри войны никаких изменений не применялось. - person Erik Kaju; 25.06.2013
comment
У меня все заработало. Получил некоторую практическую помощь от службы поддержки ZT. Спасибо за ответы. - person Erik Kaju; 02.08.2013