Отладка веб-приложения Maven на уже установленном Glassfish с использованием eclipse

Моя проблема связана с отладкой веб-приложения на уже установленной стеклянной рыбе с использованием eclipse.

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

Я могу использовать плагин maven jetty или tomcat и отлаживать приложение, но мне нужно отлаживать приложение на уже установленной стеклянной рыбе. В основном у меня есть следующее: 1) веб-приложение, созданное с использованием архетипа maven 2) Eclipse IDE 3) Glassfish, который уже установлен вне Eclipse IDE

Я наткнулся на плагин maven Glassfish, но, насколько я понял, он не для отладки приложения.

Пожалуйста, дайте мне знать ваши предложения.

Спасибо


person Chir    schedule 19.10.2010    source источник


Ответы (3)


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

Это неправда. Используете ли вы плагин Maven Eclipse (который предоставляет поддержка WTP) или m2eclipse (с необязательным Maven Integration для WTP, установленной из m2eclipse Extras), вы можете развернуть проект, созданный вне Eclipse, на существующий «Сервер» (который можно запустить в режиме Отладки), при условии, что вы правильно импортировали его (Импорт... > Существующий проект в рабочую область, если вы используете первый вариант, Импорт... > Проекты Maven, если вы используете последний).

В основном у меня есть следующее: 1) веб-приложение, созданное с использованием архетипа maven 2) Eclipse IDE 3) Glassfish, который уже установлен вне Eclipse IDE

Я использую одну и ту же настройку с несколькими проектами без проблем (и могу отлаживать их на моем локально установленном сервере GlassFish).

Я наткнулся на плагин maven Glassfish, но, насколько я понял, он не для отладки приложения.

Нет необходимости в дополнительных плагинах Maven, вы можете просто положиться на свою IDE, если будете следовать правильным шагам.

person Pascal Thivent    schedule 19.10.2010
comment
Спасибо, Паскаль, я выполнил все шаги, и теперь я могу отлаживать проект на основе maven в eclipse. - person Chir; 20.10.2010
comment
@Chir Кстати, тогда не стесняйтесь пометить ответ как принятый (зеленая галочка под счетчиком голосов слева) ;) - person Pascal Thivent; 20.10.2010
comment
Я столкнулся с другой проблемой. В дополнение к веб-проекту maven у меня есть проект maven ejb. Оба являются независимыми проектами. Оба они импортированы в eclipse. Я объявил зависимость веб-проекта от проекта ejb через eclipse. Я могу отлаживать веб-проект, но когда я обращаюсь к EJB проекта ejb и развертываю приложение на Glassfish, при развертывании веб-проекта возникает исключение ClassNotFoundException. Я пытался решить проблему, но не смог. Пожалуйста, предложите. Спасибо - person Chir; 23.10.2010
comment
@Chir Это какой-то другой вопрос, и я не собираюсь обсуждать его в небольшом поле для комментариев. Пожалуйста, откройте новый вопрос и предоставьте полную информацию. - person Pascal Thivent; 23.10.2010

Я не знаю насчет eclipse, но в IntelliJ IDEA есть функция удаленной отладки. Вы запускаете свой сервер с чем-то вроде

-Xdebug -Xrunjdwp: транспорт = dt_socket, сервер = y, приостановить = n, адрес = 5055

а затем IDE подключится к этому порту, и у вас будет обычная отладка.

Я уверен, что у eclipse есть эта функция.

РЕДАКТИРОВАТЬ: В этой статье показано, как использовать эту функцию с eclipse.

person Denis Tulskiy    schedule 19.10.2010
comment
Как eclipse узнает, что он должен отлаживать конкретное веб-приложение, а не другие, которые могут работать одновременно. Сценарий заключается в том, что веб-приложение будет упаковано и развернуто с использованием maven. Пожалуйста дайте мне знать, спасибо - person Chir; 19.10.2010
comment
Еще один вопрос. В случае обычной отладки проекта eclipse, если в исходный файл будут внесены какие-либо изменения, eclipse перестроит проект и развернет его снова, своего рода горячее развертывание. Будет ли это возможно в веб-приложениях на основе maven и уже установленной стеклянной рыбе. заранее спасибо - person Chir; 19.10.2010
comment
@Chir: хм, хороший вопрос, не знаю. Я использовал его с WebSphere, развернул с помощью Maven, и он просто останавливается везде, где у меня есть точка останова. И это не будет перекомпилировать/повторно развертывать ваше приложение, вам придется сделать это самостоятельно. - person Denis Tulskiy; 19.10.2010

Я собираюсь написать это больше всего для себя, чтобы отслеживать мое решение:

Если вы используете плагин maven.failsafe, просто принудительно выполните выполнение Glassfish внутри текущей JVM, запущенной maven, избегая форка с параметром

-DforkCount=0

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

Здесь можно найти дополнительную информацию о параметрах, включая настройку другого порта отладки:

http://maven.apache.org/surefire/maven-failsafe-plugin/examples/debugging.html
person loreii    schedule 08.01.2015