Подтвердить что ты не робот

Отладка JSP в IntelliJ IDEA

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

Когда я устанавливаю точку останова в моих файлах JSP, эти точки останова никогда не вступают в силу. Отладчик никогда не ударяет их. ИДЕЯ кажется, что точки останова действительны. Я вижу красную точку, расположенную слева от строки, где я устанавливаю точку останова.

Я прочитал в форуме IntelliJ в этом сообщении, что файлы JSP должны быть под web-inf для отладки для работы.

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

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

4b9b3361

Ответ 1

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

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

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

(Web) Сервер приложений: перейдите к "edit configurations", там вам нужно добавить в конфигурацию сервер приложений, а не запускать веб-сервер в качестве приложения, как и любое другое. Таким образом Intellij сможет перехватывать JSP-вызовы. В списке серверов приложений вы должны указать по умолчанию Tomcat. Перед тем, как сделать это, убедитесь, что у вас установлена ​​локальная установка Tomcat, и указывайте на это при добавлении сервера веб-приложений. Последний трюк перейдет на вкладку "Развертывание" и выберите в качестве "Источника развертывания" тот же самый грань, который вы настроили на предыдущем шаге.

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

Если вы не видите Tomcat в списке доступных серверов приложений для добавления, проверьте плагины на общей панели настроек Intellij: в последних версиях все больше и больше функций стали "подключаемыми", и даже очень простые функции могут быть отключен; этот плагин называется интеграцией Tomcat.

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

Ответ 2

Для удаленной отладки JSP (что также относится к localhost) вам необходимо установить JSR45поддержка плагина.

  • Перейдите в Настройки > Плагины, найдите плагин JSR45 и включите его.
  • Создайте конфигурацию прогона: Запустить > Запустить конфигурацию > нажмите кнопку + и выберите JSR45 Compatible Server, а затем в откроется диалоговое окно, выберите Удаленный и установите сервер и порт сервера. Настройка Сервер приложений: Общий должен работать нормально.
  • Убедитесь, что вы установили правильный порт в Запуск/Конфигурация > Отладка.

  • Откройте настройки модуля ( F3 в папке проекта) и добавьте Веб-грант в разделе Границы и в разделе Каталоги веб-ресурсов укажите корневую папку JSP.

  • Нажмите кнопку Configuration... и выберите папки с beans, классами и библиотеками, на которые зависят ваши JSP.

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

Ответ 3

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

Ответ 4

Для второй части вашего вопроса ( "файлы jsp, помещенные под web-inf не будут напрямую доступны пользователю" ), это правильно. Чтобы разрешить пользователям доступ к файлам JSP в сервлет-папке WEB-INF, и записи привязки сервлета должны быть сделаны в файле web.xml для каждой страницы JSP.

Ответ 5

Пожалуйста, убедитесь, что в вашем tomcat conf/web.xml suppressSmap включен не, поскольку поддержка JSR45 требуется отладчику IntelliJ.

Он должен выглядеть так:

<init-param>
  <param-name>suppressSmap</param-name>
  <param-value>false</param-value>
</init-param>

Из https://tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html

suppressSmap. Должно ли подавляться генерация SMAP-информации для отладки JSR45? true или false, по умолчанию false.