Удаленная отладка Tomcat с Eclipse
Я не могу отлаживать приложение tomcat через Eclipse. Я установил
CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
а затем я запускаю bin/catalina.sh
, где я вижу вывод о том, что он слушает dt_socket
на port 8000
. Но всякий раз, когда я пытаюсь подключиться к порту 8000
в Eclipse (добавив запись в меню удаленного java-приложения), он жалуется на отказ от соединения. Есть идеи?
- Несколько портов (8005, 8080, 8009), требуемых Tomcat Server на локальном хосте, уже используются
- java.lang.IllegalArgumentException: Неверный в отображении сервлета
- JBoss vs Tomcat снова
- Обмен данными сеанса между контекстами в Tomcat
- Как установить переменную CATALINA_HOME в Windows 7?
- Как создать военные файлы
- IntelliJ не может запускать простое веб-приложение: невозможно подключиться к серверу ping на localhost: 1099
- Порядок загрузки файлов jar из каталога lib
- Как правильно установить и настроить JSF-библиотеки через Maven?
- Как изменить приложение ROOT?
- Singleton через экземпляр JVM или приложения или экземпляр Tomcat
- Пользовательский обработчик java.util.logging в tomcat
- Spring - вставка зависимости в ServletContextListener
Можете ли вы проверить, работает ли это?
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n" catalina.sh jpda start
поJPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n" catalina.sh jpda start
В каталоге bin tomcat, где найдены каталины.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-> Конфигурации отладки …-> Удаленное приложение Java-> Новое
и укажите имя, проект, который вы отлаживаете, и порт хоста и отладки tomcat, указанный выше.
Я потратил некоторое время на это, чтобы получить правильную информацию.
Итак, вот подробная информация шаг за шагом.
Окружающая среда: Windows 7
Версия TomCat: 7.0
IDE: Eclipse
Конфигурации, которые нужно добавить для включения удаленной отладки в tomcat, – это
-Xdebug -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
Я не рекомендую эту конфигурацию для среды без окон. Чтобы добавить вышеуказанную конфигурацию, дважды щелкните на сервере tomcat, который будет доступен на сервере. Найдите снимок экрана ниже.
Теперь добавьте указанную выше конфигурацию среды выполнения в tomcat. Для этой проверки ниже снимок экрана.
Теперь перейдите на вкладку «Ремиксы» в разделе «Свойства запуска запуска редактирования», как показано ниже.
В разделе аргументов GoTo VM добавьте эти строки.
-Xdebug
-agentlib: JDWP = транспорт = транспорт по сокетам, адрес = 8000, сервер = у, приостановить = п
Теперь появилась кнопка отладки, доступная на панели инструментов eclipse.
В конфигурациях Debug найдите «Удаленное приложение Java» и дважды щелкните по нему.
В поле «Имя» введите любое имя, которое вам нравится.
Из поля проекта с помощью кнопки обзора выберите проект, который вы хотите выполнить удаленную отладку.
Имя хоста – это только адрес хоста. Здесь я работаю локально, так что это «localhost».
В последнем столбце Port значение должно быть 8000. Помимо текстовых полей Name и Project другие два столбца Host и порт будут заполнены самим eclipse, если вы не указали те же значения, что и упомянутые. Проверьте снимок экрана для информации.
Теперь щелкните правой кнопкой мыши на TomcatServer в консоли сервера, выберите «Добавить и удалить из контекстного меню». В этом диалоговом окне вы можете добавить проект на сервер.
Теперь запустите Tomcat sever.
Теперь запустите TomCatDebugConfiguration из Debug Tool.
Последний открытый внутренний или внешний браузер и запуск вашего проекта. Если контроль выполнения достигнет точек разрыва, то затмение предложит отладочную перспективу.
В файле catalina.bat
пожалуйста, измените ниже.
-
Шаг 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
ниже:catalina.sh jpda start
-
Шаг 4: Затем в eclipse создайте конфигурацию отладки
- Дайте имя для конфигурации.
- Укажите
project name
. - Укажите тип подключения как
Standard(Socket Attach)
- хост как
localhost
- порт как
8000
(или любой номер порта, но он должен быть таким же и в других местах).
Позвольте мне поделиться простым способом включения удаленного режима отладки в tomcat7 с помощью eclipse (Windows).
Шаг 1: открыть файл bin / startup.bat
Шаг 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.bat (так что теперь ваш сервер tomcat работал в удаленном режиме с портом 8000).
Шаг 5: после этого позволяет подключить исходный проект с помощью eclipse IDE с удаленным клиентом.
step6: В Eclipse IDE перейдите в раздел «Конфигурация отладки»,
step7: нажмите «удаленное приложение Java» и нажмите «Новый»,
step8. на вкладке «connect» установите значение параметра
project= your source project connection Type: standard (socket attached) host: localhost port:8000
step9: нажмите применить и отладить.
поэтому, наконец, ваш удаленный клиент eclipse связан с работающим сервером tomcat (режим отладки).
Надеюсь, этот подход может помочь вам.
С уважением..
Измените параметр catalina.bat, чтобы добавить
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
Необязательно: добавьте строку ниже, чтобы запустить режим отладки по умолчанию при запуске startup.bat
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
Eclipse или STS выберите конфигурацию отладки правой кнопкой мыши -> новый
connection type -> Standard socket Attach Port -> 8000 (as given in the CATALINA_OPTS) Host -> localhost or IP address
Просто запустите ./catalina.sh jpda start
(forks) или ./catalina.sh jpda run
(не fork, не упоминается в справке). Все параметры, упомянутые здесь, по умолчанию соответствуют нормальным значениям.
Если все еще не работает, вы всегда можете добавить скрипт
set "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
В tomcat 7, catalina.sh имеет этот код:
if [ "$1" = "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
поif [ "$1" = "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, чтобы открыть этот порт на локальном компьютере. Конечно, вам понадобится файл setenv.sh в вашем $ {CATALINA_HOME} / bin / в вашем контейнере.
Изменение startup.bat с CATALINA_OPTS и JPDA_OPTS не сработало для меня, но добавив их в catalina.bat
- Изменить Catalina.bat
CATALINA_OPTS = “- Xdebug -Xrunjdwp: transport = dt_socket, address = 8000, server = y, suspend = n”
JPDA_OPTS = “- agentlib: JDWP = транспорт = транспорт по сокетам, адрес = 8000, сервер = у, приостановить = п”
- Измените startup.bat, чтобы включить jpda
change call “% EXECUTABLE%” start% CMD_LINE_ARGS% to
вызов «% EXECUTABLE%» jpda start% CMD_LINE_ARGS%
Затем настройте удаленное приложение java в своих конфигурациях отладки в Eclipse.
Прежде всего, если вы откроете файл catalina.bat с помощью текстового редактора, вы увидите следующее: «Не устанавливайте переменные в этом скрипте …..» Поэтому никогда не изменяйте его в этом скрипте, вместо этого вы можете сделать следующие шаги:
- Он советует вам создать новый bat-файл с именем «setenv.bat».
-
Затем установите 2 переменных в файле bat, например:
set CATALINA_OPTS = “- Xdebug -Xrunjdwp: transport = dt_socket, address = 8000, server = y, suspend = n”
set JPDA_OPTS = “- agentlib: jdwp = transport = dt_socket, address = 8000, server = y, suspend = n”
-
Наконец, запустите команду cmd, чтобы: “catalina.bat jpda start”
-
В среде IDE создайте удаленную конфигурацию отладки и установите для хоста соответствующий IP-адрес и порт на 8000.
Для версии apache-tomcat-8.5.28 просто сделайте это,
catalina.bat jpda start
Поскольку настройки по умолчанию уже настроены для нас в catalina.bat как
если не “% JPDA_OPTS%” == “” goto gotJpdaOpts установлено JPDA_OPTS = -agentlib: jdwp = transport =% JPDA_TRANSPORT%, address =% JPDA_ADDRESS%, server = y, suspend =% JPDA_SUSPEND%
Так что не нужно никакой другой конфигурации. И когда вы запускаете команду catalina.bat jpda start, вы можете увидеть отладочный порт 8000.
Для apache-tomcat-8.5.28
измените JDPA_OPTS
как 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"