Цель этого документа — объяснить, как использовать технологию JRebel с IDE NetBeans 7.2.1 и локальную установку контейнера сервлета Tomcat 7. JRebel также может работать с удаленными серверами, но это будет темой другого урока.
Установите плагин JRebel в NetBeans
Подключаемый модуль JRebel NetBeans доступен для среды IDE NetBeans 7.2.1.
Чтобы установить плагин JRebel NetBeans, вам нужно только:
- Запустите среду IDE NetBeans.
- Перейдите в меню Инструменты > Плагины и установите плагин JRebel NetBeans ;
- После установки плагина JRebel вам придется перезапустить IDE.
Активируйте свою бесплатную лицензию JRebel
Посетите https://my.jrebel.com/register и создайте бесплатный аккаунт. Вы также можете подключиться через свою учетную запись Facebook или Twitter, это бесплатно.
Как только вы подключитесь к своей учетной записи, перейдите в
раздел « Активировать » на веб-сайте и скопируйте ключ активации в буфер обмена (мы будем использовать его позже):
- Scala: для разработки Scala;
- OSS: для программного обеспечения с открытым исходным кодом;
- Социальные: для некоммерческих проектов;
Выберите план и подтвердите его.
Как только вы добавили план в свою учетную запись, переключитесь на IDE и перейдите на
вкладку 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.