Отладка action'ов в IntelliJ IDEA

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
Строка 20: Строка 20:
'''3.''' Создать подкаталог lib, в него скопировать дополнительные jar'ы, которые нужны для работы action'а.  
'''3.''' Создать подкаталог lib, в него скопировать дополнительные jar'ы, которые нужны для работы action'а.  
-
'''4.''' Создать [build.xml|build.xml для BGBilling action]. В property "bgbilling.dir" вписать путь до сервера биллинга.  
+
'''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-запроса.  
+
[[Код action'а]], который просто выводит параметры HTTP-запроса.  
'''6.''' Создать Run/Debug Configuration по шаблону "Remote", назвать, к примеру, "bgbilling server", указать хост сервера и порт 5589.  
'''6.''' Создать Run/Debug Configuration по шаблону "Remote", назвать, к примеру, "bgbilling server", указать хост сервера и порт 5589.  
Строка 81: Строка 81:
[[Файл:idea-breakpoint.png]]
[[Файл:idea-breakpoint.png]]
-
и запустить наш [запрос|bg-curl.php]:  
+
и запустить тестовый [[POST-запрос]]:  
<pre>  
<pre>  
$ php curl.php  
$ php curl.php  

Версия 18:16, 29 мая 2011

Для компиляции проекта нужна локальная копия сервера биллинга. Сам сервер биллинга, к которому мы будем подключаться для отладки, может быть запущен удаленно.

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. В 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.

Файл: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

и запустить тестовый POST-запрос:

 
$ php curl.php 

Profit :)

Файл:idea-debug_is_working.png

Личные инструменты