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
будет.