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, например, без номеров строк. Попробуйте установить точку останова на метод, а не на инструкцию. Если это работает, добавьте параметры отладки на этапе компиляции в вашей сборке, чтобы также были включены номера строк. Это позволит вам устанавливать точки останова на линиях.

Другие вопросы по тегам