Отладка action'ов в IntelliJ IDEA
Материал из BiTel WiKi
DDPaul (Обсуждение | вклад) (Новая страница: «Для компиляции проекта нужна локальная копия сервера биллинга. Сам сервер биллинга, к кот…») |
DDPaul (Обсуждение | вклад) |
||
(2 промежуточные версии не показаны) | |||
Строка 3: | Строка 3: | ||
'''1.''' Создать новый проект в IDEA. | '''1.''' Создать новый проект в IDEA. | ||
- | + | [[Файл:idea-new_project.png]] | |
Каталог для исходников - в src. | Каталог для исходников - в src. | ||
Строка 20: | Строка 20: | ||
'''3.''' Создать подкаталог lib, в него скопировать дополнительные jar'ы, которые нужны для работы action'а. | '''3.''' Создать подкаталог lib, в него скопировать дополнительные jar'ы, которые нужны для работы action'а. | ||
- | '''4.''' Создать [build.xml | + | '''4.''' Создать [[build.xml]]. В property "bgbilling.dir" вписать путь до сервера биллинга. |
'''5.''' Пора создать свой action - File -> New -> Java Class. Имя можно выбрать на свой вкус и цвет, главное, насколько я понимаю, чтобы оно находилось в пространстве имен _bitel.billing.server.*.action_. Например, для action'а предварительной тарификации, можно выбрать имя _bitel.billing.server.tariff.action.ActionPreTariffing_. | '''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. | '''6.''' Создать Run/Debug Configuration по шаблону "Remote", назвать, к примеру, "bgbilling server", указать хост сервера и порт 5589. | ||
- | + | [[Файл:idea-remote_debug.png]] | |
Порт для отладки задается в скрипте запуска сервера (server.sh) | Порт для отладки задается в скрипте запуска сервера (server.sh) | ||
Строка 74: | Строка 74: | ||
'''9.''' Запустить отладчик (Run -> Debug), в консоли должно появиться: | '''9.''' Запустить отладчик (Run -> Debug), в консоли должно появиться: | ||
<pre> | <pre> | ||
- | Connected to the target VM, address: ' | + | Connected to the target VM, address: 'billing.host.ru:5589', transport: 'socket' |
</pre> | </pre> | ||
'''10.''' Теперь можно, например, поставить breakpoint: | '''10.''' Теперь можно, например, поставить breakpoint: | ||
- | + | [[Файл:idea-breakpoint.png]] | |
- | и запустить | + | и запустить тестовый [[POST-запрос]]: |
<pre> | <pre> | ||
$ php curl.php | $ php curl.php | ||
Строка 88: | Строка 88: | ||
Profit :) | Profit :) | ||
- | + | [[Файл:idea-debug_is_working.png]] |
Текущая версия на 18:17, 29 мая 2011
Для компиляции проекта нужна локальная копия сервера биллинга. Сам сервер биллинга, к которому мы будем подключаться для отладки, может быть запущен удаленно.
1. Создать новый проект в IDEA.
Каталог для исходников - в 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. В property "bgbilling.dir" вписать путь до сервера биллинга.
5. Пора создать свой action - File -> New -> Java Class. Имя можно выбрать на свой вкус и цвет, главное, насколько я понимаю, чтобы оно находилось в пространстве имен _bitel.billing.server.*.action_. Например, для action'а предварительной тарификации, можно выбрать имя _bitel.billing.server.tariff.action.ActionPreTariffing_.
Код action'а, который просто выводит параметры HTTP-запроса.
6. Создать Run/Debug Configuration по шаблону "Remote", назвать, к примеру, "bgbilling server", указать хост сервера и порт 5589.
Порт для отладки задается в скрипте запуска сервера (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: 'billing.host.ru:5589', transport: 'socket'
10. Теперь можно, например, поставить breakpoint:
и запустить тестовый POST-запрос:
$ php curl.php
Profit :)