какой код выполняется - PullRequest
       24

какой код выполняется

1 голос
/ 20 сентября 2011

У меня есть какое-то приложение J2EE, и я могу видеть, что это приложение делает в своем веб-интерфейсе.У меня также есть исходный код для приложения.Я хочу понять, какой код на самом деле выполняется, когда я нажимаю что-то в веб-интерфейсе.Какой лучший способ узнать это?Я думал о том, чтобы поставить точку останова в первой строке каждого метода, но это довольно раздражает, когда я делаю это вручную :-), поэтому я надеюсь, что это лучший метод.Спасибо за ответ.

Ответы [ 5 ]

2 голосов
/ 21 сентября 2011

Ваше приложение развернуто на сервере приложений.Вы можете отладить его, запустив сервер в режиме отладки.Например, в JBoss есть хороший набор инструментов для затмения.С инструментами отладка - просто нажатие кнопки (та, что с ошибкой).

Ведение журнала, безусловно, тоже вариант, хотя вы не будете получать столько подробностей.Лично я предпочитаю logback по общему количеству по ряду причин .

Если у вас нет подсказки, где устанавливать точки останова / где регистрироваться, и структуру пакетабесполезно, вы можете начать с методов в ваших EJB.Ищите аннотации, например @Stateless, @EJB (чтобы найти точки впрыска и перейти оттуда), например.
Если есть классы сервлетов, начните с них или, если это интерфейс JSF, поищите аннотации @ManagedBean.

2 голосов
/ 20 сентября 2011

Как насчет добавления фильтра сервлетов , который только корректирует, передает все в цепочку и ставит там точку останова?

Убедитесь, что в вашем файле web.xml указано правильное сопоставление фильтров, и ваша точка останова должна соответствовать всем URL-адресам.

2 голосов
/ 20 сентября 2011

Я думаю, что apache logger - отличный способ отследить поток ... потому что он написан самостоятельно.eclipse предоставляет плагин для просмотра журналов, через который вы можете его просматривать ... однако, когда дело доходит до веб-приложений, я думаю, что мониторинг также очень важен ... используя jconsole, вы можете посмотреть на выполняемые потоки ... и используя jmap, вы можете найтииз классов и загруженных объектов ... я не знаю, если вывод в том порядке, в котором они загружены .. если так .. тогда вы можете получить хорошее представление о том, как загружаются классы .. и экземпляры потребляютсякаждым из них.

2 голосов
/ 20 сентября 2011

добавить регистратор. Вы также можете использовать библиотеки логгеров, например Apache Commons Logging .

2 голосов
/ 20 сентября 2011

Добавление сообщений журнала в ваши API - лучший и рекомендуемый способ выяснить поток управления (а также был одним из самых мощных механизмов исторической отладки).

Если вы хотите, вы можетеиметь большинство из них на уровне DEBUG, чтобы включать / выключать их из среды разработки в производственную среду (где вам, скорее всего, это не понадобится).

...