2015-04-12 3 views
0

Я хотел бы понять, как работает удаленная отладка. Мне нужно, чтобы мое приложение было развернуто на tomcat для его работы? Более конкретно, учитывая, что у меня есть исходный код на моей машине, отладчик клиента на IntelliJ, передайте инструкцию кода серверному отладчику на удаленной машине или код уже развернут на этом компьютере.Удаленная отладка на Tomcat и Intellij

Из всего примера, который я видел на JDA, приложение должно быть запущено с требуемой опцией на удаленной машине, чтобы клиентский отладчик (Front end) мог подключиться к задней части отладчика на этом компьютере.

Но мне непонятно, как заставить его работать с Контейнерами, такими как tomact. Из примера, который я читаю, кажется, что приложение в этом случае будет только tomcat и инструкция из исходного кода, переданного проводкой. В самом деле, я не вижу никаких шагов по развертыванию приложения.

Пожалуйста, кто-нибудь может это объяснить.

ответ

1

Когда вы отлаживаете приложение, развернутое внутри контейнера tomcat, вы должны должны использовать ваше приложение удаленно. Удаленная отладка отлаживает приложение remote (которое находится внутри контейнера tomcat). Исходный код, который вы видите в intellij, не передается серверу во время отладки.

Вы можете попробовать немного эксперимента: добавьте некоторые строки в исходный код и поместите на них контрольные точки, затем запустите сеанс удаленной отладки без перераспределения. Поскольку вы не синхронизированы между исходным кодом и развернутым кодом, вы увидите, что точки останова на новых строках кода отмечены красным «x» по intellij - это потому, что отладчик не может найти эти строки (по номеру строки) на сервере.

Отладка может фактически работать и останавливаться на контрольных точках, даже если исходный код, который у вас есть в intellij, отличается от кода на удаленном сервере, если точки останова находятся в классах с одинаковыми именами для обоих. Однако фактически выполненный код - это код, который находится на сервере.

В качестве примечания вы можете изменить код внутри intellij во время сеанса отладки и немедленно внести изменения в сервер (до конца сеанса отладки). Для этого скомпилируйте измененный класс (ctrl + F9 в intllij), пока сеанс отладки ждет на контрольной точке. Это вызывает HotSwap mecahnism.

1

Tomcat удаленной отладки так же легко, как, начиная Tomcat следующим образом:

/some/path$ catalina.sh jpda start 

Это запустит Tomcat с удаленной отладкой на порт по умолчанию, 8000. Многие другие вещи, в том числе, как изменить этот порт, объясняются в FAQ.

Смежные вопросы