Статьи

Как использовать JRebel с IDE NetBeans и Tomcat

Цель этого документа — объяснить, как использовать технологию JRebel с IDE NetBeans 7.2.1 и локальную установку контейнера сервлета Tomcat 7. JRebel также может работать с удаленными серверами, но это будет темой другого урока.

Установите плагин JRebel в NetBeans


Подключаемый модуль JRebel NetBeans доступен для среды IDE NetBeans 7.2.1.

Чтобы установить плагин JRebel NetBeans, вам нужно только:

  1. Запустите среду IDE NetBeans.
  2. Перейдите в меню Инструменты > Плагины и установите плагин JRebel NetBeans ;
  3. После установки плагина JRebel вам придется перезапустить IDE.

Активируйте свою бесплатную лицензию JRebel

Посетите https://my.jrebel.com/register и создайте бесплатный аккаунт. Вы также можете подключиться через свою учетную запись Facebook или Twitter, это бесплатно.


Как только вы подключитесь к своей учетной записи, перейдите в
раздел «
Активировать » на веб-сайте и скопируйте ключ активации в буфер обмена (мы будем использовать его позже):


Теперь перейдите на
https://my.jrebel.com/plans, чтобы выбрать бесплатный тариф:
  • Scala: для разработки Scala;
  • OSS: для программного обеспечения с открытым исходным кодом;
  • Социальные: для некоммерческих проектов;

Выберите план и подтвердите его.

Как только вы добавили план в свою учетную запись, переключитесь на IDE и перейдите на
вкладку
JRebel , в
раздел «
Активация » и вставьте скопированный код активации в буфер обмена:


Ваш плагин JRebel будет автоматически проверен:

PS 1: Если вы не подтвердите свой плагин JRebel, вы все равно сможете его настроить, но перезагрузка класса не будет работать (вы увидите сообщение об ошибке во время запуска сервера приложений). Чтобы JRebel работал, вам нужен код активации и активный план.

PS 2: ZeroTurnaround (создатели JRebel) планируют упростить процедуру лицензирования. Пожалуйста, смотрите: http://zeroturnaround.com/jrebel/jrebel-licensing-gets-simplified/ , хотя я не уверен, влияет ли это также на бесплатное лицензирование.

Включить JRebel в Tomcat


Сначала найдите ваш
файл
jrebel.jar . Этот файл находится в вашей папке
netbeans_user_dir / jrebel / . Чтобы определить
папку
netbeans_user_dir , перейдите в
меню «
Справка» диалогового окна « О программе» и проверьте значение поля «
Каталог пользователя» :


В нашем примере
путь к файлу jrebel.jar — это
C: \ Java \ __ prefs __ \ nb \ nb_userdir \ jrebel \ jrebel.jar . Ваш собственный путь, вероятно, отличается, потому что я настроил расположение моего каталога пользователей NetBeans.

Во-вторых, добавьте
параметр запуска
-javaagent: locationOfJrebelJarFile в Tomcat. Если вы запускаете Tomcat из IDE, используйте вкладку Platform диалогового окна свойств сервера Tomcat,
чтобы добавить параметр запуска:


Если вы запускаете Tomcat как службу Windows, с помощью демона UNIX или простого сценария BAT / SH, добавьте параметр в команду запуска.

Запустите Tomcat. Вы увидите сообщения JRebel в журналах Tomcat, что-то вроде этого:

[2012-12-09 00:35:53] #############################################################
[2012-12-09 00:35:53] 
[2012-12-09 00:35:53]  JRebel 5.1.0 (201210161346)
[2012-12-09 00:35:53]  (c) Copyright ZeroTurnaround OU, Estonia, Tartu.
[2012-12-09 00:35:53] 
[2012-12-09 00:35:53]  Over the last 4 days JRebel prevented 
[2012-12-09 00:35:53]  at least 38 redeploys/restarts saving you about 1.5 hours.
[2012-12-09 00:35:53] 
[2012-12-09 00:35:53]  This product is licensed to Jonathan Lermitage
[2012-12-09 00:35:53]  for non-commercial use only.
[2012-12-09 00:35:53] 
[2012-12-09 00:35:53]  License acquired through myJRebel server.
[2012-12-09 00:35:53] 
[2012-12-09 00:35:53]  You are subscribed for the plan "JRebel Social Plan",
[2012-12-09 00:35:53]  subscription is for lifetime.
[2012-12-09 00:35:53]  next license check with the server is required by 2013-01-08.
[2012-12-09 00:35:53] 
[2012-12-09 00:35:53]  The following plugins are disabled at the moment: 
[2012-12-09 00:35:53]  * Apache MyFaces plugin (set -Drebel.myfaces_plugin=true to enable)
[2012-12-09 00:35:53]  * Click plugin (set -Drebel.click_plugin=true to enable)
[2012-12-09 00:35:53]  * JRuby Plugin (set -Drebel.jruby_plugin=true to enable)
[2012-12-09 00:35:53]  * Jersey plugin (set -Drebel.jersey_plugin=true to enable)
[2012-12-09 00:35:53]  * Oracle ADF Core plugin (set -Drebel.adf_core_plugin=true to enable)
[2012-12-09 00:35:53]  * Oracle ADF Faces plugin (set -Drebel.adf_faces_plugin=true to enable)
[2012-12-09 00:35:53]  * RESTlet plugin (set -Drebel.restlet_plugin=true to enable)
[2012-12-09 00:35:53]  * Seam-Wicket plugin (set -Drebel.seam_wicket_plugin=true to enable)
[2012-12-09 00:35:53]  * Spring Data Plugin (set -Drebel.spring_data_plugin=true to enable)
[2012-12-09 00:35:53]  * WebObjects plugin (set -Drebel.webobjects_plugin=true to enable)
[2012-12-09 00:35:53] 
[2012-12-09 00:35:53] #############################################################

Это сообщение указывает, что JRebel правильно зарегистрирован в Tomcat и ваша лицензия активна. В противном случае вы увидите сообщение о том, что ваша лицензия не проверена.

Включить JRebel в проекте веб-приложения


Перейдите в диалоговое окно «Свойства проекта» приложения, откройте
вкладку «
Выполнить » и снимите флажок «
Развернуть при сохранении», поскольку в этом нет необходимости, поскольку вместо этого мы будем использовать JRebel для перезагрузки классов:


Кроме того, в разделе «
Сборка>
Компиляция » должна быть включена функция «
Компилировать при сохранении» .

Разверните свой проект в первый раз и посетите веб-страницу, такую ​​как сервлет, который показывает информацию. Вернитесь в среду IDE и измените свой код сервлета, сохраните его и обновите веб-страницу. Новый контент отражает изменения вашего кода.

Теперь каждый раз, когда вам нужно удалить, отредактировать или добавить логику (классы, файлы конфигурации и т. Д.) В ваш проект, вам нужно только сохранить свои изменения. Вам не нужно повторно развертывать свой проект, чтобы увидеть изменения.

В завершение, когда JRebel перезагружает вещи, вы можете увидеть сообщения в журналах Tomcat, например:

[2012-12-09 00:50:20] JRebel: Reloading class 'fr.tikione.myfavs.WelcomeServlet'.
[2012-12-09 00:50:20] JRebel: Reloading class 'fr.tikione.myfavs.UserSession'.
[2012-12-09 00:50:20] JRebel: Reloading class 'fr.tikione.myfavs.WelcomeServlet$FORM_RESULT'.
[2012-12-09 00:50:20] JRebel: Reinitialized class 'fr.tikione.myfavs.WelcomeServlet$FORM_RESULT'.
[2012-12-09 00:50:20] JRebel: Reloading class 'fr.tikione.myfavs.WelcomeServlet$1'.
[2012-12-09 00:50:20] JRebel: Reinitialized class 'fr.tikione.myfavs.WelcomeServlet$1'.
[2012-12-09 00:50:20] JRebel: Reloading class 'fr.tikione.myfavs.dao.AccountController'.

Ограничения

  • JRebel имеет некоторые ограничения. Они объясняются здесь: http://zeroturnaround.com/software/jrebel/features/ . Поддерживаемые технологии (серверы, компоненты Java EE, IDE и т. Д.) Показаны здесь: http://zeroturnaround.com/software/jrebel/what-we-support/ .
  • Если вы используете функцию гибернации своей операционной системы, вам, возможно, придется перезапустить сервер приложений, в противном случае перезагрузка классов JRebel может не сработать (проверено в Windows 7 с Tomcat 7.0.32, Oracle JDK 7u09, IDE NetBeans 7.2.1 и Плагин JRebel 1.3, основанный на платформе JRebel 5.1.0.