Tomcat 8, работающий в Linux с удаленным отладочным соединением, УСТАНАВЛИВАЕТСЯ из Eclipse, но точка останова не останавливается
Я пытаюсь выполнить удаленную отладку веб-приложения Tomcat, работающего в Linux, с которого я запустил Tomcat:
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8111,server=y,suspend=n"
в каталине.ш:
...
...
...
# -----------------------------------------------------------------------------
# OS specific support. $var _must_ be set to either true or false.
cygwin=false
darwin=false
os400=false
case "`uname`" in
CYGWIN*) cygwin=true;;
Darwin*) darwin=true;;
OS400*) os400=true;;
esac
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8111,server=y,suspend=n"
# resolve links - $0 may be a softlink
PRG="$0"
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
...
...
...
а затем я начинаю tomcat с:
Tomcat/bin > catalina.sh jpda start
когда я делаю netstat -a | grep 8111 я получаю:
tcp 0 0 *:8111 *:* LISTEN
В Windows я использую Eclipse Версия: Mars.1 (4.5.1) я настроил удаленную отладку
нажал отладку, и я вижу соединение, установленное как на сервере, так и в Windows Eclipse следующим образом:
и на сервере Linux, когда я делаю netstat -a | grep 8111 я вижу:
tcp 0 0 linux:8111 my.pc.ip.66:62285 ESTABLISHED
Я установил множество точек останова в Eclipse, источник тот же, но нет точек останова... Это ошибка?
1 ответ
Последний скриншот является гарантией того, что вы подключились к вашему Tomcat. Чтобы остановиться на любой из ваших точек останова, вам нужно использовать код, в котором вы установили точку останова. Обычно подойдет только ваше приложение.
Eclipse иногда не может установить точку останова по какой-то причине. Когда он успешно установлен, на точке останова появляется небольшая галочка, сигнализирующая, что он активен.
Если определенный класс еще не загружен или есть какие-то другие проблемы, точка останова не будет иметь отметки и останется неактивной.
Убедитесь, что ваши точки останова активны. Если нет, убедитесь, что конфигурация вашего проекта (та, которую вы использовали для настройки отладочного запуска) соответствует WAR, развернутому в Tomcat.
Если это не сработает, у вас могут быть другие параметры компиляции, используемые для создания приложения, развернутого в Tomcat, например, без номеров строк. Попробуйте установить точку останова на метод, а не на инструкцию. Если это работает, добавьте параметры отладки на этапе компиляции в вашей сборке, чтобы также были включены номера строк. Это позволит вам устанавливать точки останова на линиях.