Трассировка стека в затмении - PullRequest
3 голосов
/ 06 июля 2010

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

Ответы [ 3 ]

2 голосов
/ 06 июля 2010

Предполагая, что вы запускаете приложение из Eclipse, но внутри контейнера Java EE, такого как Glassfish или Tomcat, вызов метода printStackTrace () для объекта исключения (при обнаружении) отобразит трассировку стека в окне консоли в Eclipse. В вашем случае вам сначала нужно будет узнать, создается ли вообще исключение. Я не рекомендовал бы создавать объект Exception во время выполнения только для вывода из него трассировки стека.

Это, конечно, не очень хорошая практика при написании производственного кода качества, и вы должны обратить внимание на использование каркаса ведения журналов, такого как log4j, jul или slf4j, для отслеживания поведения приложения.

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

2 голосов
/ 07 июля 2010
  • На сервере запустите "jvisualvm" в папке bin JDK с тем же пользователем, что и запущенный Glassfish.
  • Присоединитесь к процессу Glassfish, дважды щелкнув соответствующую запись в разделе «Local».
  • На панели «Потоки» нажмите кнопку «Дамп потока».
  • Скопируйте трассировку стека в буфер обмена.
  • В Eclipse вставьте трассировку стека в представление консоли Java Stack Trace на панели «Консоль».
1 голос
/ 06 июля 2010

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

Мне кажется, что функция «шаг в» (F5) наиболее полезна, она позволяет вам рекурсивно опускаться в функции для изучения происходящего.

Вы можете установить точки останова в начале кода выгрузки файла, чтобы начать пошаговое выполнение примерно в нужном месте. В моей версии Eclipse трассировка стека появляется в верхней левой части панели «Debug» под соответствующим потоком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...