Удаленная отладка сервера Tomcat с помощью Eclipse


Я не могу отлаживать приложение tomcat через Eclipse. Я установил

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

а потом я бегу bin/catalina.sh, где я вижу выход, говорящий, что он слушает dt_socket on port 8000. Но когда я пытаюсь подключиться к порту 8000 в Eclipse (добавив запись в меню удаленного приложения java), он жалуется на отказ в подключении. Есть идеи?

14 75

14 ответов:

можете ли вы проверить, если это работает?

JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"

catalina.sh jpda start

в каталоге Tomcat bin, гдеcatalina.bat или .sh найдено (aka {CATALINA_BASE} / bin), редактировать (создать, если нет):

setenv.bat/.sh

добавить следующую строку:

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

это все, что вам нужно сделать, вам не нужно редактировать catalina.bat (или .sh файл).

см. комментарии catalina.batили catalina.sh.

возможно, вам придется настроить синтаксис для вашей конкретной среды / ситуации. Например, если у вас уже есть CATALINA_OPTS определенный, вы можете сделать что-то вроде этого (в среде windows):

set CATALINA_OPTS=%CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,address=8088,server=y,suspend=n

для отладки из Eclipse:

run - > Debug конфигурации...- >Удаленное Приложение Java- > Новый

и укажите имя, проект, который вы отлаживаете, а также хост tomcat и порт отладки, указанные выше.

Я потратил некоторое время на это, чтобы получить нужную информацию.

Итак, вот подробная информация шаг за шагом.

Среда: Windows 7

версия TomCat: 7.0

IDE: Eclipse

конфигурации, которые будут добавлены для включения удаленной отладки с помощью tomcat is

-Xdebug
-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n

Я не рекомендую выше конфигурации для среды без windows. Чтобы добавить вышеуказанную конфигурацию дважды щелкните на сервере tomcat, который будет доступен в представлении сервера. Найдите снимок экрана ниже. enter image description here

теперь добавьте приведенную выше конфигурацию среды выполнения в tomcat. Для этого проверьте ниже скриншот.

enter image description here

теперь добрался до вкладки Arugments в Edit launch configuration properties, как показано ниже на снимке экрана.

enter image description here

GoTo VM аргументы раздел добавить эти строки.

- Xdebug

- agentlib:jdwp=transport=dt_socket, address=8000, server=y, suspend=n

enter image description here

теперь есть кнопка отладки, доступная на панели инструментов eclipse.

enter image description here

в конфигурациях отладки найдите "удаленное приложение Java" и дважды щелкните по нему.enter image description here

в поле " Имя " введите любое имя, которое вам нравится.

из поля проект с помощью кнопки Обзор выберите проект, который вы хотите выполнить удаленно отлаживать.

имя хоста-это не что иное, как адрес хоста. Здесь я работаю локально, так что это"localhost".

последний столбец порта значение должно быть 8000. Помимо текстовых полей имени и проекта, другие два столбца хост и порт будут заполнены самим eclipse, если не заставят вас иметь те же значения, что и упомянутые. Проверьте снимок экрана для получения информации.enter image description here

теперь щелкните правой кнопкой мыши на TomcatServer в консоли сервера выберите Добавить и удалить из контекстного меню. Из этого диалогового окна вы можно добавить проект на сервер.

теперь запустите Tomcat sever.

enter image description here

теперь запустите TomCatDebugConfiguration из средства отладки.

последний раз откройте внутренний или внешний браузер и запустите свой проект. Если элемент управления выполнением достиг точки останова, то eclipse запросит перспективу отладки.

на пожалуйста, измените ниже.

  • Шаг 1: CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

  • Шаг 2: JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"

  • Шаг 3: запустите Tomcat из командной строки, как показано ниже: catalina.sh jpda start

  • Шаг 4: Затем в eclipse создайте конфигурацию отладки

    1. дать любое имя для конфигурации.
    2. дать project name.
    3. укажите тип подключения как Standard(Socket Attach)
    4. хоста localhost
    5. порт 8000( или любой номер порта , но это должно быть в других местах тоже).

позвольте мне поделиться простой способ включить режим удаленной отладки в tomcat7 с eclipse (Windows).

Шаг 1: Откройте bin / startup.bat file
Шаг 2: добавьте следующие строки для отладки с опцией JDPA (она должна начинаться с строки файла )

    set JPDA_ADDRESS=8000  
    set JPDA_TRANSPORT=dt_socket  

Шаг 3: в том же файле .. перейти к концу файла изменить эту строку -

    call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%  
    instead of line  
    call "%EXECUTABLE%" start %CMD_LINE_ARGS%  

Шаг 4: затем просто запустите bin>startup.летучая мышь (так что теперь ваш сервер tomcat работает в удаленном режиме с портом 8000).

Шаг 5: после этого позволяет подключить ваш исходный проект по интегрированной среде разработки Eclipse с удаленного клиента.

Шаг 6: в Eclipse IDE перейдите в раздел "отладка конфигурации"

Шаг 7: Нажмите кнопку " удаленное приложение java "и на этом нажмите кнопку" Создать"

Шаг 8. на вкладке "подключение" установите значение параметра

   project= your source project  
   connection Type: standard (socket attached)   
   host: localhost  
   port:8000  

Шаг 9: нажмите кнопку Применить и отладка.

Итак, наконец, ваш удаленный клиент eclipse подключен к запущенному серверу tomcat (debug режим.)

надеюсь, что этот подход может помочь вам.

С уважением..

изменить Каталина.летучая мышь чтобы добавить

set JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n" 

и

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

необязательно: добавьте строку ниже, чтобы запустить режим отладки по умолчанию при запуске запуска.летучая мышь

call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

Eclipse или STS выберите debug configuration щелкните правой кнопкой мыши - > new

connection type -> Standard socket Attach
Port -> 8000 (as given in the CATALINA_OPTS)
Host -> localhost or IP address

просто запустить ./catalina.sh jpda start (вилки) или ./catalina.sh jpda run (Не вилка, не упоминается в справке). Все параметры, упомянутые здесь, по умолчанию имеют нормальные значения.

Если все выше не работает, вы всегда можете добавить в скрипт

    set "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

в tomcat 7, catalina.sh имеет такой код:

if [ "" = "jpda" ] ; then
  if [ -z "$JPDA_TRANSPORT" ]; then
    JPDA_TRANSPORT="dt_socket"
  fi
  if [ -z "$JPDA_ADDRESS" ]; then
    JPDA_ADDRESS="8000"
  fi
  if [ -z "$JPDA_SUSPEND" ]; then
    JPDA_SUSPEND="n"
  fi
  if [ -z "$JPDA_OPTS" ]; then
    JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
  fi
  CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
  shift
fi

Ii означает, что вы можете настроить JPDA с помощью:

export JPDA_TRANSPORT=dt_socket
export JPDA_ADDRESS=8000
export JPDA_SUSPEND=n

или:

JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"

и, наконец, использовать:

catalina.sh jpda start

в отношении

Я столкнулся с этой проблемой при запуске Tomcat внутри контейнера Docker. Чтобы исправить это, убедитесь, что вы добавили аргумент '-p 8000:8000' в команду docker run, чтобы предоставить этот порт для вашего локального компьютера. Вам, конечно, понадобится setenv.sh файл в вашем ${CATALINA_HOME}/ bin / в вашем контейнере, а также.

изменение автозагрузки.bat с CATALINA_OPTS и JPDA_OPTS не работал для меня, но добавил их к catalina.летучая мышь сделал

  1. изменить Каталина.летучая мышь

CATALINA_OPTS="-отладчика xdebug -Xrunjdwp:транспорт=dt_socket,address=Москва 8000,сервер=г,приостановить=Н"

JPDA_OPTS= "- agentlib:jdwp=transport=dt_socket, address=8000, server=y, suspend=n"

  1. изменить параметры автозагрузки.летучая мышь, чтобы включить jpda

изменить вызов " %исполняемый файл%" запустите %CMD_LINE_ARGS% to

вызов" %EXECUTABLE% " jpda start %CMD_LINE_ARGS%

затем настройте удаленное приложение java в конфигурациях отладки в Eclipse.

прежде всего, если вы откроете Каталину.летучая мышь с текстовым редактором, вы видите, что: "Не устанавливайте переменные в этом скрипте....."Поэтому никогда не меняйте его в этом скрипте, вместо этого вы можете сделать следующие шаги:

  1. он советует вам создать новый файл bat с именем " setenv.летучая мышь."
  2. затем установите 2 переменные в этом файле bat, такие как:

    установить CATALINA_OPTS="-отладчика xdebug -Xrunjdwp:транспорт=dt_socket,address=Москва 8000,сервер=г,приостановить=Н"

    set JPDA_OPTS= "- agentlib:jdwp=transport=dt_socket, address=8000, server=y, suspend=n"

  3. наконец запустите это в cmd, что: "catalina.bat jpda start"

  4. в IDE создайте конфигурацию удаленной отладки и установите для узла связанный ip-адрес сервера и порт 8000.

для версии apache-tomcat-8.5.28 просто сделайте это,

catalina.bat jpda start

Как Настройки по умолчанию уже настроен для нас в Каталине.летучая мышь как

если не" %JPDA_OPTS% "= = "" goto gotJpdaOpts set JPDA_OPTS=-agentlib:jdwp=transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%

поэтому нет необходимости в какой-либо другой конфигурации. И когда вы выполняете команду Каталина.запуск bat jpda, вы можете увидеть, что открыт порт отладки 8000.

для apache-tomcat-8.5.28

изменить JDPA_OPTS как показано ниже, а затем запустить как catalina.bat jpda start

JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=8000,server=y,suspend=$JPDA_SUSPEND"