2014-11-25 4 views
1

Я хочу использовать jrebel с intellij IDEA и JBOSS AS7.Где находится jrebel JAR-файл в моем WAR-файле?

(у вас есть веб-приложение (так же как и WAR)).

С помощью apache-ANT создайте my-WAR и разверните его под JBOSS AS.

Я знаю, как вносить какие-либо изменения классов или ресурсов JRebel в моей WAR-, следующим образом (если я не ошибаюсь!):

rebel.xml)

<classpath> 
    <dir name="D:/project/myProject/out/production/myProject"> 
    </dir> 
</classpath> 

<web> 
    <link target="/"> 
     <dir name="D:/project/myProject/resources"> 
     </dir> 
     <dir name="D:/project/myProject/view"> 
     </dir> 
    </link> 
</web> 

Но, на самом деле, "jerebel банка-файл" Где моих ВОЙНЫ?

in => "warFile> WEB-INF> lib"? Я этого не видел.

, пожалуйста, помогите мне.

ответ

5

jrebel.jar упакован внутри плагина JRebel для IntelliJ IDEA. Его не нужно развертывать с самой WAR. JRebel плагин будет установить правильные параметры виртуальной машины Java в командной строке при запуске с помощью «Запуск с JRebel» или «Отладка с JRebel»:

-javaagent:/path/to/jrebel.jar 

Вы не должны делать это самостоятельно, если вы запускаете сервер с IDE. Если вы запустите сервер из командной строки, вам нужно будет добавить аргумент JVM самостоятельно с правильным путем к jrebel.jar, как описано здесь: http://manuals.zeroturnaround.com/jrebel/standalone/launch-from-command-line.html#jboss-7-x

Java-агенты перехватывают загрузку классов и, следовательно, должны быть загружены перед другими классами. Как вы могли догадаться, jrebel.jar является Java-агентом, и поэтому ничего не требует, чтобы он был упакован внутри WAR.

Вместо этого файл конфигурации rebel.xml, должен быть упакован в WAR, в каталог WEB-INF/classes. JRebel использует rebel.xml для обнаружения, где скомпилированные классы и ресурсы. Поэтому, когда приложение развертывается, JRebel находит файл конфигурации rebel.xml и не загружает классы приложений из самой WAR, но вместо этого он будет использовать путь, указанный в файле rebel.xml. Вот почему rebel.xml должен быть внутри войны, так как вы также можете запустить сервер из командной строки вместо IDE.

Смежные вопросы