Невозможно подключиться к удаленной JVM - PullRequest
0 голосов
/ 28 сентября 2018

Я работаю над приложением Java 10, которое использует встроенный сервер Jetty для обеспечения управления из локальной сети, и я пытаюсь подключиться к JVM и не удается.Он работает на рабочем столе Ubuntu 18.04 LTS.

Мой сценарий запуска имеет следующие строки:

java -Xdebug -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -Djava.library_path=${LIB_PATH} -classpath ${CP} -jar ${APP_DIR}/app.jar 

У меня есть ufw в системе, и я убедился, что порт открыт.Мой вывод из состояния ufw включает:

8000 ALLOW Anywhere
8000 (v6) ALLOW Anywhere

В IntelliJ моя конфигурация отладки:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000

Когда я пытаюсь подключиться, я получаю сообщение об ошибке, что в соединении отказано.

с IP-адресом машины в поле адреса конфигурации.

Глядя на вывод команды netstat -l, я вижу следующее:

tcp 0 0 localhost:8000 0.0.0.0:* LISTEN

Означает ли это, что отладчик прослушивает соединение только на локальном хосте?Нужно ли что-то делать, чтобы оно слушалось в сети?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Так что я нашел ответ довольно быстро.Мне нужно было изменить строку, которую я использую для сервера, так, чтобы она выглядела так:

java -Xdebug -agentlib:jdwp=transport=dt_socket,address=*:8000,server=y,suspend=n -Djava.library_path=${LIB_PATH} -classpath ${CP} -jar ${APP_DIR}/app.jar

, то есть прослушивает все интерфейсы.

0 голосов
/ 28 сентября 2018

Проблема в этой строке:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000

Адрес должен быть номером порта (если он находится на локальном компьютере) и именем хоста: номер порта при подключении к удаленному компьютеру.Убрал '*:' в адресе, и он должен работать.

...