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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «Для компиляции проекта нужна локальная копия сервера биллинга. Сам сервер биллинга, к кот…»)
Строка 3: Строка 3:
'''1.''' Создать новый проект в IDEA.  
'''1.''' Создать новый проект в IDEA.  
-
!idea-new_project.png!
+
[[Файл:idea-new_project.png]]
Каталог для исходников - в src.  
Каталог для исходников - в src.  
Строка 28: Строка 28:
'''6.''' Создать Run/Debug Configuration по шаблону "Remote", назвать, к примеру, "bgbilling server", указать хост сервера и порт 5589.  
'''6.''' Создать Run/Debug Configuration по шаблону "Remote", назвать, к примеру, "bgbilling server", указать хост сервера и порт 5589.  
-
!idea-remote_debug.png!
+
[[Файл:idea-remote_debug.png]]
Порт для отладки задается в скрипте запуска сервера (server.sh)  
Порт для отладки задается в скрипте запуска сервера (server.sh)  
Строка 79: Строка 79:
'''10.''' Теперь можно, например, поставить breakpoint:  
'''10.''' Теперь можно, например, поставить breakpoint:  
-
!idea-breakpoint.png!
+
[[Файл:idea-breakpoint.png]]
и запустить наш [запрос|bg-curl.php]:  
и запустить наш [запрос|bg-curl.php]:  
Строка 88: Строка 88:
Profit :)  
Profit :)  
-
!idea-debug_is_working.png!
+
[[Файл:idea-debug_is_working.png]]

Версия 18:10, 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|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

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