Отладка JSP в IntelliJ IDEA

Кто-нибудь знает, как отлаживать JSP в IntelliJ IDEA?

Когда 9X_debugging я устанавливаю точку останова в своих файлах 9X_intellij-idea JSP, эти точки останова, кажется, никогда не 9X_debugging вступают в силу. Отладчик никогда их не 9X_debugging затрагивает. IDEA, похоже, считает, что 9X_jsp точки останова действительны. Я вижу красную 9X_jsp точку, расположенную слева от строки, где 9X_debugger я размещаю точку останова.

Я читал на форуме 9X_debugger IntelliJ in this post, что JSP файлы должны находиться 9X_debugger в web-inf для работы отладки.

Но потом я 9X_debug также прочитал, что JSP файлы, размещенные 9X_debugging в web-inf, не будут доступны пользователю 9X_debugging напрямую.

Я не уверен, кто действительно 9X_debugging прав.

52
0
5
Общее количество ответов: 5

Ответ #1

Ответ на вопрос: Отладка JSP в IntelliJ IDEA

Для отладки JSP в Intellij есть некоторые 9X_intellij-idea конфигурации, которые должны быть в порядке. Тот 9X_jsp факт, что Intellij всегда позволяет вам 9X_debug добавлять точку останова в строке JSP, не 9X_debug обязательно означает, что вы настроили отладку 9X_debugging JSP. Далее я имею в виду конфигурацию Intellij 9X_debugging 8, w.r.t. в предыдущих версиях вам нужно 9X_debugger будет выполнять аналогичные операции, так 9X_intellij-2016.1 как концепции такие же.

Чтобы включить отладку 9X_intellij-2016.1 JSP, вы должны выполнить два шага: установить 9X_debugger конфигурацию веб-приложения в своем проекте 9X_debugger и добавить конфигурацию сервера веб-приложений.

Конфигурация веб-приложения: для 9X_debugger отладки JSP вы должны иметь «веб-фасет» в 9X_jsp структуре вашего проекта, указывающий на 9X_intellij-2016.1 правильный файл web.xml. В зависимости от 9X_jsp типа структуры веб-приложения, которую вы 9X_debug используете, этот аспект может быть обнаружен 9X_intellij-2016.1 Intellij автоматически (в любом случае проверьте, что 9X_intellij-idea он сделал), или вам, возможно, придется 9X_intellij-2016.1 добавить его вручную. Не забудьте на вкладке 9X_jsp «Параметры сборки Java EE» установить в 9X_debug качестве возможности «Создать каталог с 9X_intellij-2016.1 разнесенными веб-фасетами»; если вы не хотите 9X_jsp дублирования, уловка состоит в том, чтобы 9X_intellij-idea просто включить его и указать на уже существующий 9X_intellij-idea каталог.

Сервер приложений (веб): перейдите к «редактировать конфигурации», там 9X_intellij-idea вы должны добавить в конфигурации сервер 9X_intellij приложений, а не запускать веб-сервер как 9X_jsp приложение, как любое другое. Таким образом 9X_jsp Intellij сможет перехватывать JSP-вызовы. В 9X_intellij-2016.1 списке серверов приложений у вас должен 9X_intellij быть сервер по умолчанию Tomcat. Перед этим 9X_intellij-2016.1 убедитесь, что у вас установлена ​​локальная 9X_jsp установка Tomcat, и укажите на нее при добавлении 9X_debug сервера веб-приложений. Последний трюк - перейти 9X_intellij-idea на вкладку «Развертывание» и выбрать в качестве 9X_intellij «Источник развертывания» тот же аспект, который 9X_intellij-idea вы настроили на предыдущем шаге.

Та же конфигурация 9X_debug работает, если вы хотите использовать другой 9X_intellij сервер веб-приложений. Я тестировал ее с 9X_debugger последними выпусками Caucho Resin, и отладка 9X_jsp работает нормально (этого не было с предыдущими 9X_jsp комбинациями Intellij и Resin).

Если вы не 9X_debugging видите Tomcat в списке доступных серверов 9X_debug приложений для добавления, проверьте плагины 9X_debugger на общей панели настроек Intellij: в последних 9X_intellij-2016.1 версиях все больше и больше функций стали 9X_intellij «подключаемыми», и даже очень простые функции 9X_intellij может быть отключен; этот плагин называется 9X_intellij-idea «интеграция с Tomcat».

Наконец, совершенно 9X_intellij неверно, что файлы JSP должны находиться 9X_jsp в WEB-INF для отладки.

35
0

Ответ #2

Ответ на вопрос: Отладка JSP в IntelliJ IDEA

Для удаленной отладки JSP (что также относится 9X_intellij-2016.1 к localhost) вам необходимо установить JSR45 ㄧ support plugin. Обратите внимание, что эта функция поддерживается только в версии IntelliJ Ultimate, а не в версии для сообщества.

  1. Перейдите в Настройки > Плагины, найдите JSR45 плагин и включить его.
  2. Создайте конфигурацию запуска: Запустить > Запустить конфигурацию > нажмите кнопку + и выберите JSR45 Compatible Server, а затем в открывшемся диалоговом окне выберите Удаленный и задайте хост и порт сервера. Настройка Application Server: Generic должна работать нормально.
  3. Убедитесь, что 9X_debugger вы установили правильный порт в Startup/Configuration > Debug.

  4. Откройте 9X_debugger настройки модуля (F3 в папке проекта) и добавьте 9X_debugger Web Facet в Facets, а в Каталоги веб-ресурсов укажите корневую папку JSP.

  5. Нажмите 9X_debugger кнопку Configuration... и выберите папки с компонентами, классами 9X_intellij-idea и библиотеками, от которых зависят ваши 9X_intellij-idea JSP.

Теперь точки останова JSP должны работать, при 9X_intellij условии, что вы запустили свой сервер с 9X_jsp помощью proper debug arguments.

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

27
2

  • Можете ли вы обновить это на 2018 год? похоже, что некоторые имена и пользовательский интерфейс изменились.< ...

Ответ #3

Ответ на вопрос: Отладка JSP в IntelliJ IDEA

В любом случае вам нужно запускать Tomcat 9X_jsp в IDEA, а не с удаленного Tomcat.

6
1

  • Спасибо за подсказку! Мне не удалось отладить, когда я запустил mvn tomcat: run. Когда я использовал локальную конфигурацию з ...

Ответ #4

Ответ на вопрос: Отладка JSP в IntelliJ IDEA

Убедитесь, что conf / web.xml suppressSmap вашего tomcat не включен, поскольку 9X_debugger отладчик IntelliJ требует поддержки JSR45. .

Это 9X_debugging должно выглядеть так:

 suppressSmap false 

От https://tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html

suppressSmap - Следует 9X_intellij-2016.1 ли подавить создание информации SMAP для 9X_intellij-idea отладки JSR45? истина или ложь, по умолчанию 9X_intellij-2016.1 ложь.

1
0

Ответ #5

Ответ на вопрос: Отладка JSP в IntelliJ IDEA

Если вы используете отладчик Intellij, вы 9X_intellij-2016.1 можете получить значение отдельного атрибута, поместив 9X_debugging точку останова внутри JSP и вычислив выражение 9X_debugging this.jspContext.request.getAttribute("attributeName").

Обратите внимание, что это может вернуть 9X_debugging тип объекта Java, и вам, возможно, придется 9X_debug привести его к правильному типу. Также, если 9X_intellij-2016.1 вы запустите удаленный Tomcat, IDEA не попадет 9X_jsp ни в какие точки останова, поэтому вам нужно 9X_intellij-idea запустить Tomcat в режиме отладки изнутри 9X_debugger IDEA.

1
0