Артефакт удаленного развертывания в Jboss AS с использованием JRebel

Просто пытаюсь настроить удаленное развертывание проектов в Jboss AS 4.2.1 с помощью Jrebel.

После включения JRebel для моего проекта в eclipse вместе с функцией удаленного взаимодействия он запрашивает URL-адрес развернутого приложения на сервере. Как мне узнать URL-адрес моего проекта, чтобы я мог указать его в разделе удаленного взаимодействия JRebel?

Я думал найти его в консоли JMX, но мой проект jar будет находиться в папке lib EAR, который развернут на сервере, поэтому я не смог найти его там. Может кто-нибудь мне помочь?


person mystarrocks    schedule 18.03.2013    source источник
comment
Если вы развертываете приложение, как вы размещаете его на сервере? Если вы развернули приложение, разумно, что вы можете получить к нему доступ, верно? Так что это тот самый URL, который требуется JRebel.   -  person Anton Arhipov    schedule 19.03.2013
comment
Просто другие развернутые приложения будут использовать мое приложение, которое будет находиться в папке lib на сервере. Точно так же, как любая «предоставленная» зависимость maven будет занимать папку lib сервера, такого как tomcat. Как найти такой проект по URL-адресу?   -  person mystarrocks    schedule 19.03.2013


Ответы (1)


Для работы JRebel Remoting требуется компонент, ориентированный на HTTP. Он использует протокол HTTP, используя тот же порт, что и веб-контейнер. Это означает нулевую конфигурацию (вроде как) и отсутствие дыр в брандмауэре, но недостатком является то, что это не будет работать для приложений без модуля WAR (пока :)).

Я предполагаю, что ваше приложение представляет собой файл jar внутри уха. Все, что ему нужно, это военный модуль в этом ухе. В этой войне не обязательно должен быть файл relay.xml или файл relay-remote.xml. Создайте WAR, если он не существует.

URL-адрес будет адресом, который вы должны ввести в веб-браузере, чтобы получить доступ к этому веб-приложению. Например, http://example.org:8080/MyWar/

Также убедитесь, что в развернутом проекте библиотеки есть файлы rein.xml и relay-remote.xml (просто создать их в Eclipse недостаточно, эти два файла xml должны оказаться на сервере).

Кроме того, вам необходимо установить и активировать JRebel на удаленном сервере, а затем запустить JBoss со следующими аргументами JVM: -javaagent:path/to/jrebel.jar -Drebel.remoting_plugin=true, где path/to/jrebel.jar указывает на установленный файл jrebel.jar

Дополнительная информация: http://zeroturnaround.com/software/jrebel/remoting/

В вашем случае макет EAR может выглядеть так:

- myapp.ear
    - webapp.war
    - someEJB.jar
    - lib/
       - yourApp.jar
          - WEB-INF/classes/
             - rebel.xml
             - rebel-remote.xml

       - someOtherLib.jar

--

Арнел

Технический руководитель JRebel Remoting

person Arnelism    schedule 19.03.2013
comment
Я собираюсь попробовать это и посмотреть, работает ли это для меня. Так что, если я вас правильно понял, мой проект (jar) должен находиться во вновь созданной войне, которая останется в папке lib моего EAR. Правильный? - person mystarrocks; 20.03.2013
comment
Нет, ваша банка может оставаться там, где она есть (внутри EAR). Чтобы удаленное взаимодействие работало, в этом EAR должен быть модуль WAR. Если его нет, создайте его в корне уха. - person Arnelism; 20.03.2013