Отладка action'ов в IntelliJ IDEA
Материал из BiTel WiKi
Для компиляции проекта нужна локальная копия сервера биллинга. Сам сервер биллинга, к которому мы будем подключаться для отладки, может быть запущен удаленно.
1. Создать новый проект в IDEA.
!idea-new_project.png!
Каталог для исходников - в src.
2. Установить опции проекта в File -> Project Structure.
Project Settings -> Project. Выбрать Project SDK из списка, если список пустой, то создать SDK, указав на каталог JAVA_HOME.
Platform Settings -> Global Libraries. Создать библиотеку "bgbilling", добавить в нее каталог lib биллинга, нажав кнопку "Attach Jar Directories".
Project Settings -> Modules -> вкладка Dependencies. В списке должны присутствовать JDK (например, "1.6. (java version 1.6.0_24)") и bgbilling.
3. Создать подкаталог lib, в него скопировать дополнительные jar'ы, которые нужны для работы action'а.
4. Создать [build.xml|build.xml для BGBilling action]. В property "bgbilling.dir" вписать путь до сервера биллинга.
5. Пора создать свой action - File -> New -> Java Class. Имя можно выбрать на свой вкус и цвет, главное, насколько я понимаю, чтобы оно находилось в пространстве имен _bitel.billing.server.*.action_. Например, для action'а предварительной тарификации, можно выбрать имя _bitel.billing.server.tariff.action.ActionPreTariffing_.
[Код action'а|Демо-action], который просто выводит параметры HTTP-запроса.
6. Создать Run/Debug Configuration по шаблону "Remote", назвать, к примеру, "bgbilling server", указать хост сервера и порт 5589.
!idea-remote_debug.png!
Порт для отладки задается в скрипте запуска сервера (server.sh)
7. Запустить сборку командой ant.
[paul@localhost]~/Projects/bgbilling-demo$ ant Buildfile: build.xml clean: [delete] Deleting directory /home/paul/Projects/bgbilling-demo/dist [delete] Deleting directory /home/paul/Projects/bgbilling-demo/classes prepare: [mkdir] Created dir: /home/paul/Projects/bgbilling-demo/classes [mkdir] Created dir: /home/paul/Projects/bgbilling-demo/dist doWindows: doUnix: [echo] Came into the Unix target compile: [javac] Compiling 1 source file to /home/paul/Projects/bgbilling-demo/classes build: [jar] Building jar: /home/paul/Projects/bgbilling-demo/dist/custom-actions.jar BUILD SUCCESSFUL Total time: 4 seconds
8. Файл dist/custom-actions.jar закинуть в подкаталог lib сервера биллинга, после чего перезапустить его в debug-режиме.
# ./server.sh stop # ./server.sh debug
Лучше сразу проверить, слушает ли сервер порт 5589:
# netstat -ltn | grep 5589 tcp 0 0 0.0.0.0:5589 0.0.0.0:* LISTEN
9. Запустить отладчик (Run -> Debug), в консоли должно появиться:
Connected to the target VM, address: 'bg.mvio.ru:5589', transport: 'socket'
10. Теперь можно, например, поставить breakpoint:
!idea-breakpoint.png!
и запустить наш [запрос|bg-curl.php]:
$ php curl.php
Profit :)
!idea-debug_is_working.png!