Подтвердить что ты не робот

Java удаленная отладка Tomcat app: Почему JVM не прослушивает?

Я хочу удаленно отлаживать приложение, запущенное в Tomcat 7. Tomcat работает как служба на сервере Win2008. Я добавил следующие параметры Java на панели конфигурации Java Tomcat: -Xdebug -Xrunjdwp:transport=dt_socket,address=4711,server=y,suspend=n и открыл брандмауэр на моей рабочей станции и сервер для этого порта. Но когда я пытаюсь отлаживать IntelliJ 9 на своей рабочей станции, я получаю сообщение об ошибке Unable to open debugger port : java.net.ConnectException "Connection timed out: connect". Jvm представляет собой стандартную версию JVM версии 1.6.0_27 для Sun/Oracle.

Я проверил, что параметры командной строки используются при доступе к ManagementFactory.getRuntimeMXBean().getInputArguments() в приложении, развернутом в Tomcat, и протоколировании результата в файл журнала. Я проверил через Wireshark на своей рабочей станции и на сервере, что запрос TCP на порт 4711 отправлен с моего компьютера и прибывает на сервер, но ответа нет. Выполнение netstat -a на сервере не показывает процесс, прослушивающий этот порт. Поэтому я предполагаю, что Tomcat/JVM не запускает удаленную отладку.

4b9b3361

Ответ 1

Вам нужно поместить -Xdebug и -Xrunjdwp... в отдельные строки на панели Java панели настройки службы Tomcat.

Итак, имея:

-Xdebug -Xrunjdwp:transport=dt_socket,address=4711,server=y,suspend=n

не будет работать, но:

-Xdebug
-Xrunjdwp:transport=dt_socket,address=4711,server=y,suspend=n

будет.