Как отладить песочницу CDAP с IntelliJ на Mac
Я пытаюсь отладить код CDAP и код плагина
Я пробовал несколько вариантов запуска песочницы CDAP:
https://docs.cask.co/cdap/5.1.0-SNAPSHOT/en/developer-manual/getting-started/sandbox/docker.html
Песочница работает и полные журналы говорят, что порт 5005 открыт для отладки
Starting CDAP Sandbox ...Listening for transport dt_socket at address: 5005
Docker PS имеет два других порта: 0.0.0.0:11011->11011/tcp, 0.0.0.0:11015->11015/tcp cdap-sandbox
Когда я настраиваю IntelliJ-отладчик на 11015, кажется, что нет проблем, но точки останова не улавливают выполнение кода.
Я попытался запустить изолированную программную среду CDAP в virtualbox и использовать 192.168.99.100, но все еще не могу поймать точки останова с помощью удаленного отладчика
Я также попытался добавить 5005 к незащищенным портам докера 0.0.0.0:5005->5005/tcp и настроить intellij для того же. Intellij не удалось подключиться к удаленному 5005
Как я отлаживаю песочницу cdap с intellij?
1 ответ
Проблема заключается в файле functions.sh в каталоге bin. По умолчанию он связывает порт прослушивания с localhost.
Починить это:
Найдите строку:
"CDAP_SDK_OPTS+=" -agentlib:jdwp=transport=dt_socket,address=localhost:${__port},server=y,suspend=n"
и измените его на что-то вроде (удалить localhost:
):
"CDAP_SDK_OPTS+=" -agentlib:jdwp=transport=dt_socket,address=${__port},server=y,suspend=n"
- Запустите песочницу CDAP в режиме отладки.
bin/cdap sandbox start --enable-debug
- В intelliJ goto
Run -> Edit Configurations -> Add New Configuration -> Remote
- Укажите имя конфигурации, введите хост и порт (5005 для отладки cdap).
Выберите свой модуль maven в разделе Использовать входную конфигурацию пути к классам модуля и нажмите Применить
Теперь для отладки нажмите кнопку отладки, и все готово.
Вы начали CDAP с флагом --enable-debug?
Наша документация поможет вам запустить CDAP в режиме отладки.
Кроме того, вам может пригодиться наша документация по тестированию и отладке.