JSP를 어떻게 디버깅 할 수 있습니까?


26

프로젝트의 JSP를 편집하려고하는데 서버에서 요청하면 JSP 어딘가에 NullPointerException이 발생합니다.

내 웹 서버 (JBoss)가 예외를보고하지만 허위 줄 번호를 제공합니다. 702 라인에서 예외가 발생했다고보고되었지만 JSP의 길이는 146 줄이므로 어떤 라인이 질식되고 있는지 식별 할 수 없습니다.

JSP에서 오류를 디버깅하는 좋은 기술은 무엇입니까? IntelliJ 9 Ultimate를 IDE로 사용하고 있습니다.

감사


1
Stackoverflow.com에 요청받을 수 있습니다
Abimaran Kugathasan

1
승인. 죄송합니다. StackOverflow.com과 Programmers.StackExchange.com의 차이점에 대해 완전히 명확하지 않습니다. 어떤 질문이 어디에 있는지 잘 모르겠습니다. programmers.stackexchange에 대한 FAQ를 읽었지만 조금 모호합니다.
ampersandre

3
실제로 스택 오버플로에서 이것이 정상인지 확신 할 수 없습니다. 상당히 구체적이지만 (문제의 특성으로 인해) 구체적인 세부 사항이 충분하지 않습니다. 당신이 겪고있는 것은이 사이트의 주제에 관한 디버깅 기술입니다.
ChrisF

jsp 안에 jsp가 포함되어 있습니까? 이것이 줄 번호가 증가하는 방식입니다. 질문은 stackoverflow로 이동해야합니다
마이너스 Seven

한 가지 기술은 컴파일 파일을 보는 것입니다 : codeinventions.blogspot.com/2014/08/…
Suresh Atta

답변:


29

도움이되는 몇 가지 옵션이 있습니다.

  1. 이 답변은 실제로 JSP를 구체적으로 디버깅하는 방법을 설명합니다 : https://stackoverflow.com/questions/33739/jsp-debugging-in-intellij-idea . 나는 이것을 시도하지 않았기 때문에 JSP, JBoss 및 IntelliJ를 사용할 때 다음 세 가지 제안을 따랐습니다 ...

  2. JSP는 클래스로 컴파일됩니다. 702 행이라고 말하면 컴파일 된 클래스를 의미합니다. 이있는 경우 test.jsp클래스 이름은 아마도 test_jsp이므로 JBoss 작업 디렉토리를 열고 검색하십시오 test_jsp.java(올바른 디렉토리를 찾으면 디렉토리 구조가 JSP 디렉토리 구조와 일치 함). JSP 예외가있을 때마다 줄을 매우 쉽게 찾을 수 있었고 일반적으로 JSP의 해당 줄과 일치시킵니다.

  3. 중단 점 은 JSP에서 호출 된 Java 클래스에서 잘 작동 합니다. 따라서 JSP에있는 Java 스크립트 코드를 클래스로 이동하고 진입 점에서 디버깅 할 수 있습니다. 미래에는 로직을 재정렬하는 습관을 들이게되어 대부분의 로직이 JSP에서 호출되는 클래스에 속할 수 있으며 JSP는 단순하고 간단하며 희망적으로 예외가 발생하지 않습니다. 어쨌든 이것은 좋은 습관입니다.

  4. 더 나은 방법은 모든 Java 로직을 Java 클래스로 제거하여 HTML 및 JSP 태그 용 JSP를 남겨 두는 것입니다. 나는 이것이 가능하지 않다는 것을 알고 있지만, 다시 말하지만, 이와 같은 문제를 피하는 것이 장기적으로 좋은 생각입니다.


2
JSP에서 로직을 제거하기위한 +1 보기에이 모델과 함께 JSP / 서블릿에서 2 (MVC) 아키텍처를 모범 사례를 볼 수 있습니다 : oracle.com/technetwork/articles/javase/servlets-jsp-140445.html
bunglestink

감사! 옵션 4가 이상적입니다. 동의하지만이 프로젝트에서는 뷰 / 컨트롤러가 크게 분리되지 않았습니다.
ampersandre

1
항목 # 2에 대해서도 +1입니다. *_jsp.java수업을 어디서 찾을 지 몰랐습니다 .
scottyseus

2
수천 줄의 스크립틀릿을 각각 포함하는 수천 개의 JSP가있는 프로젝트에서 JSP에서 모든 로직을 제거합니다. FML :-( </ rant> 좋은 답변
Peter Perháč

-1

Java 코드처럼 JSP 페이지를 쉽게 디버깅 할 수 있습니다.
"JSP 파일은 Java 클래스를 디버깅하는 것과 동일하지만 대부분의 기능 (Watch, Inspect 등)은 구현되지 않습니다. 변수 값을 얻는 유일한 방법 변수보기입니다. "
아래 링크를 참조하십시오 :
https://www.laliluna.de/articles/posts/debugging-jsp-java-tutorial.html


4
이미 잘받은 답변이있는 이전 질문에 답변 할 때는 아직 다루지 않은 내용을 다루도록 답변에 세부 정보를 추가하십시오.
gnat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.