Próbuję edytować plik JSP dla projektu i otrzymuję wyjątek NullPointerException gdzieś na stronie JSP, gdy zostanie o to poproszony z mojego serwera.
Mój serwer WWW (JBoss) zgłasza wyjątek, ale podaje mi fałszywy numer linii. Informuje, że wyjątek wystąpił w linii 702, ale mój plik JSP ma tylko 146 linii, więc nie jestem w stanie zidentyfikować, która linia się dusi.
Jakie są dobre techniki debugowania błędów na stronach JSP? Używam IntelliJ 9 Ultimate jako mojego IDE.
Dzięki
Odpowiedzi:
Istnieje kilka opcji, które mogą ci pomóc:
Ta odpowiedź faktycznie wyjaśnia, jak konkretnie debugować strony JSP: /programming/33739/jsp-debugging-in-intellij-idea . Nigdy tego nie próbowałem, więc zastosowałem JSP, JBoss i IntelliJ zgodnie z następnymi trzema sugestiami ...
Pamiętaj, że strony JSP są kompilowane do klas. Kiedy mówi wiersz 702, oznacza to w skompilowanej klasie. Jeśli tak
test.jsp
, prawdopodobnie jest to nazwa klasytest_jsp
, więc otwórz katalog roboczy JBoss i wyszukajtest_jsp.java
(gdy znajdziesz odpowiedni katalog, zobaczysz, że struktura katalogów odpowiada strukturze katalogów JSP). Ilekroć miałem wyjątek JSP, mogłem dość łatwo znaleźć linię i zwykle dopasować ją do odpowiedniej linii w JSP.Punkty przerwania działają dobrze w klasach Java wywoływanych z JSP. Być może możesz przenieść kod skryptu Java, który masz na swojej stronie JSP, do klasy i debugować od punktu wejścia. W przyszłości możesz również przyzwyczaić się do zmiany układu logiki, tak aby większość z nich należała do klasy wywoływanej z JSP, a JSP jest prosta, bezpośrednia i, miejmy nadzieję, nie rzuca żadnych wyjątków. To i tak dobra praktyka.
Jeszcze lepiej, usuń całą (lub praktycznie całą) logikę Java do klas Java, pozostawiając strony JSP dla tagów HTML i JSP. Wiem, że nie jest to od razu możliwe, ale znowu dobrym pomysłem jest długoterminowe unikanie takich problemów.
źródło
*_jsp.java
zajęcia.Możesz łatwo debugować stronę JSP, podobnie jak kod java:
„plik JSP jest taki sam jak debugowanie klasy Java, ale większość funkcji (Watch, Inspect itp.) Nie jest zaimplementowana. Jedyny sposób na uzyskanie wartości zmiennych to widok Zmienne ”.
Zobacz poniższy link:
https://www.laliluna.de/articles/posts/debugging-jsp-java-tutorial.html
źródło