Лучший способ отладки веб-приложения 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 что-то, что может помочь... как плагин?

С m2eclipseMaven Integration для WTP, который вы устанавливаете из Extras), вы можете использовать WTP и запустить свое приложение в режиме отладки.

В качестве альтернативы вы можете подключить удаленный отладчик к Jetty. См. Раздел " Отладка с помощью подключаемого модуля Maven Jetty" в Eclipse.

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