Я уже давно взломал и искал в Интернете, и я нашел несколько потоков переполнения statck, которые, казалось, были написаны для более старых версий intellij с различными серверами приложений. Обычно они говорят вам, чтобы войтиDeploy & Debug remote Jetty с IntelliJ 12
java -Xdebug -Xrunjdwp:transport=dt_socket,address=51887,suspend=n,server=y
One answer предлагает использовать что-то вроде
-agentlib:jdwp:transport=dt_socket,address=51887,suspend=n,server=y
Но тогда я получаю это:
Error occurred during initialization of VM
Could not find agent library: libjdwp:transport.jnilib (searched /Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Libraries:/System/Library/Java/Extensions:/Library/Java/Extensions:.)
Затем после того, как один или другой из указанных выше они говорят вам что-то вроде «Edit Configurations> jetty> remote и введите localhost, 51887» (номер порта меняется)
Однако в 12, страница, на которую вы попадаете после выбора пульта дистанционного управления, имеет множество опций и запрашивает порты JNDI, а не порты jdwp на другой вкладке, на самом деле предлагает параметры jdwp выше.
Исследуя порта немного JNDI, как правило, дает инструкции для добавления арг, как это в командную строку ...
-Dcom.sun.management.jmxremote= \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false\
Я сделал это слишком, и я могу увидеть порт 1099, принадлежащих Java (с использованием LSOF), и я могу telnet до 1099, поэтому я знаю, что JVM слушает. (Мы постараемся не беспокоиться о том, что, как говорят, открываем порт, через который любой пользователь может установить произвольный код Java по сети на ваш компьютер без пароля)
Однако, в Intellij всякий раз, когда я пытаюсь развертывания и отладки он дает мне следующее сообщение:
Я могу видеть Java RMI связи по 1099, когда я подглядывать порт 1099 с Wireshark (но они неразборчивы). Очевидно, что сообщения Intellij не удовлетворительные, поэтому мне интересно, есть ли что-то, что мне нужно сделать для Jetty, чтобы заставить его играть хорошо. Обратите внимание, что изменение версии Jetty в настоящее время не является опцией, поэтому давайте не будем туда :).
Я также попытался удалить артефакт, отключить make и попытаться просто подключить отладчик, но он по-прежнему дает мне такое же красное сообщение и сообщение об ошибке, поэтому, очевидно, требуется часть JNDI (порт 1099).
Кто-нибудь видит что-то, что я делаю неправильно, или знаю что-то еще, что я должен сделать, чтобы заставить это работать?
(мне интересно, если это что-то похожее на это: http://youtrack.jetbrains.com/issue/IDEA-65746 JBoss выпуск)
Edit: Благодаря this google groups post я обнаружил, что можно получить отладчик связным, если вы этого не сделаете укажите Edit Configurations> +> jetty> remote, но вместо этого выберите Edit Configurations> +> remote, но отладка и развертывание - это то, что мне нужно, так что это всего лишь половина решения.
Я думаю, что факт, что я вижу подключение к 1099 через wirehark, исключает возможность возникновения проблем с DNS. Очевидно, соединение выполнено, но связь не удалась. – Gus