Лучший способ отладки веб-приложения Java, упакованного как WAR, с использованием Eclipse и Maven?
Раньше я не создавал веб-приложение на Java, но у меня его достаточно полно для тестирования, и Maven прекрасно создает мой WAR-файл. Это многомодульный проект Maven, и все зависимые модули имеют свои JAR-файлы в каталоге WEB-INF/lib WAR.
Так что все вроде нормально, но как отлаживать? Я знаю, как (из командной строки) запустить WAR в Tomcat на моей машине. Я также думаю, что знаю, как настроить и запустить плагин Maven Jetty из командной строки. Но как лучше отлаживать... со всеми точками останова и переменным контролем, которые я люблю с Eclipse?
Есть ли какая-то конфигурация запуска, которую я должен создать, или я подключаю отладчик удаленно? Есть ли в Eclipse что-то, что может помочь... как плагин?
4 ответа
Если вы запускаете WAR с плагином tomcat/jetty, передайте параметры отладки в Maven:
export MAVEN_OPTS="-Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000" mvn tomcat:run
Если вы запускаете WAR-файл с помощью обычного Tomcat, просто запустите его с включенной поддержкой JPDA (отладчик):
$TOMCAT_HOME/bin/catalina.sh jpda start
Порт по умолчанию для Tomcat 6 JPDA - 8000.
Теперь подключитесь к Eclipse (Debug -> Remote Java Application) к порту 8000 и наслаждайтесь отличной сессией отладки.
Чтобы включить отладку через Eclipse:
Я передаю следующее для запуска Tomcat:
-Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=9999,suspend=n
Затем через Eclipse делайте Remote Debug.
Перейти к меню "Отладка"> "Настройка отладки"
Прокрутите вниз, чтобы выбрать удаленное приложение Java
- RT нажмите, чтобы создать новый
конфигурация - Выберите тип подключения как Стандартный (Socket Attach) и добавьте имя хоста и порт.
Чтобы начать отладку, просто откройте ее, когда сервер работает.---
Лучший способ добавления параметров отладки в $MAVEN_OPTS
и, следовательно, не объединяя их с другими существующими параметрами (если вы хотите запустить свое приложение не в режиме отладки, вы должны снова удалить эти параметры), это использовать Maven из коробки отладчик mvnDebug
, расположенный в каталоге bin, таким образом mvnDebug jetty:run
, Это запустит ваше приложение в режиме отладки, а остальное - это присоединение вашего отладчика.
Есть ли какая-то конфигурация запуска, которую я должен создать, или я подключаю отладчик удаленно? Есть ли в Eclipse что-то, что может помочь... как плагин?
С m2eclipse (и Maven Integration для WTP, который вы устанавливаете из Extras), вы можете использовать WTP и запустить свое приложение в режиме отладки.
В качестве альтернативы вы можете подключить удаленный отладчик к Jetty. См. Раздел " Отладка с помощью подключаемого модуля Maven Jetty" в Eclipse.