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-это standatd Sun / Oracle 64-разрядная JVM версия 1.6.0_27.

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

1 ответов


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

Так:

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

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

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

будет.