Ваш код кажется полным, за исключением того факта, что вторая точка останова не будет работать либо потому, что метод вызывается только от method_in_inner_class
. Проблема в том, что отладка JSP немного сложна, потому что вы не отлаживаете Java-класс.
Для отладки 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, которые находятся под отладкой.
Источник: JSP debugging in IntelliJ IDEA
«Только точка останова 1 может сломаться ...» - Это потому, что в этом примере вы никогда не вызываете код для точки останова 2. –
не содержит код для «method_in_inner_class» call «method_in_jsp_class»? – vikingsteve
вы можете скопировать мой тестовый код в среду своей идеи и попробовать отладить. Благодарю. – guopi