Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Как дебажить jsp?


Автор: Entry_N3 11.9.2007, 12:55
Например, в Eclipse?

Есть class и java в C:\Tomcat5.0\work\Catalina\localhost\myapp\org\apache\jsp\

Нужно, т.к. jsp падает с 
Цитата

Невозможно отобразить ошибку, потому что не установлено исключение. 
После закрытия этого окна нажмите кнопку "Обновить" или "Перезагрузить" Вашего обозревателя.

Автор: Tony 11.9.2007, 13:22
Ставишь поинт(break) и вперёд.

Автор: Entry_N3 11.9.2007, 13:26
Tony, а как? java-класс jspшки не в проекте?

Автор: Tony 11.9.2007, 14:01
Так в исходнике (jsp stranice) псотавь и все дела. Если закре4ит 4то ресурс не найден то добавь свой проект.

Автор: Entry_N3 12.9.2007, 13:51
Tony, что-то так игнорируются ветвления... :(

Автор: Tony 12.9.2007, 20:28
Я не помню можно ли было jstl proverit'. Но то4но помню 4то со скриптлетами дебуг нормально работал. 

Автор: Entry_N3 13.9.2007, 11:47
У кого-н. еще есть какая-н. информация по поднятой теме? 

Автор: Shaggie 13.9.2007, 12:13
У меня Resin при компиляции jsp сохраняет сервлетный java файл, а при удачной компиляции и запуске - ещё и class. Отлаживай - не хочу!

Как с этим в Tomcat - стыдно признаться, не знаю

Автор: Entry_N3 14.9.2007, 09:38
Shaggie, Tomcat тоже и java, и class... Но не в директории проекта... Пробовал отлаживаться и понял, что не реагирует на return и вообще ветвления, если jsp содержит скриптлеты и javascript... Т.е. реальную картину трудно получить...

Автор: Alexis 14.9.2007, 21:58
А если в смотреть в встроенном эклисповском браузере (Window > Show View, категория General, а в ней Internal Web Browser)? Правда, он не совсем встроенный (насколько я понимаю, под линуксом это Firefox, под виндой IE), но работает он немного по-другому.

Автор: Vasay 15.9.2007, 01:37
Так как вопрос звучал "Например, в Eclipse?", то могу написать как это сделать в NetBeans. 

Нужно? Или все же интересует только Eclipse?

Автор: Entry_N3 16.9.2007, 10:35
Vasay, да... хотел бы развить кругозор...  smile 

Автор: y3u 16.9.2007, 13:28
а нафига? что там дебажить? Кастом теги можно дебажить в боычном порядке, контроллеры и модели тоже... вьюшка обычно смотрится глазами, где что окривело...

Автор: Entry_N3 16.9.2007, 14:13
y3u, см созданную http://forum.vingrad.ru/forum/topic-172664/anchor-entry1257833/0.html

Автор: Vasay 18.9.2007, 02:12
Цитата(Entry_N3 @ 16.9.2007,  10:35)
Vasay, да... хотел бы развить кругозор...  smile

Итак, дебаг с помощью NETBeans и San Java App Server (SJAS).

Возможны два варианта:

1. Отладка на локальном компе.
2. Удаленная отладка (Все равно необходим установленный SJAS на локале).

Принципиально почти не отличаются.

Настройка NETBeans и SJAS:

Если вы ставили NETBeans и SJAS одним пакетом с сайта сана то настраивать ничего не нужно, иначе:

 NETBeans -> главное меню - > Tools -> Server Manager -> Add Server -> 
 -Выбираем тот на котором будем дебажит (в нашем случае SJAS)
 -Пишем имя на свой вкус. Жмем "Next"
 - В окошечке Platform Location пишем путь к папке, где находится локальный SJAA 

Для локальной отладки:
 
Если вы уже создавали домен для сервера, то можно выбрать Registr Locl domain, иначе нужно выбрать Create Personal Domain. 
Допустим,  домен мы не создавали:
 -выбираем Create Personal Domain и жмем Next;
 -Выбираем паку где будут хранится файлы домена (папка не должна существовать);
 -Выбираем админ логин и пароль, для доступа к панеле управления сервера и жмем Next;
 -Смотрим какие порты будет слушать нашь сервер, если что не нравится - меняем, заоминаем (лучше записываем)
 - Жмем Finish

Для удаленной отладки (подрозумевается, что мы знаем ip сервера где стоит SJAS порт админки (обычно 4848) логин и пароль админа)
Скорей всего дебаг на сервере по умолчанию запрещен:
 -Идем в админку сервера (в браузере: http://адрес:порт)
 -Жмем в меню слева     Application Server 
 - В окне справа смотрим, что написано: Если Debug: Enabled on Port:****, то запоминаем порт и приступаем к настройки NETBens, иначе: Жмем JVM Settings ставим галочку Debug и жмем кнопку Save (по мойму сервер потребует перезагрузки, хотя могу ошибаться), смотрим порт, и идем настраивать NETBeans.

 -выбираем Register Remote Domain и жмем Next;
 - указываем адрес и порт для дебага и жмем Next;
 - Вводим логин и пароль;
 - Жмем Finish

Ок. теперь у нас есть сервер на котором можно дебагить приложения.
 -Выбираем нужное нам приложение и идем в его свойства.
 -В Подменю Run выбираем только что созданный сервер.

Ставим брэйкпоинт на том куске кода, который нужен и жмем F5 (Debug main project)
В открывшемся браузере тыкаем на ту страничку где стоит брэйкпоинт и возвращаемся в NETBeans

Дальше все как с обычным приложением.

П.С. Лично у меня возникали проблемы при удаленной отладке через инет, все весьма сильно тупило. NETBeans в ожидание ответа сервера просто висел... несмотря на приличную скорость канала.
Когда сервер стоял на соседнем компе в сети, все было ок.


Автор: batigoal 18.9.2007, 09:23
Ждем комментариев Entry_N3 и добавлем рецепт в FAQ.

Автор: Entry_N3 18.9.2007, 22:08
Vasay,  smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)