it-swarm.dev

Wie kann ich eine JSP debuggen?

Ich versuche, eine JSP für ein Projekt zu bearbeiten, und erhalte irgendwo in der JSP eine NullPointerException, wenn sie von meinem Server angefordert wird.

Mein Webserver (JBoss) meldet die Ausnahme, gibt mir jedoch eine falsche Zeilennummer. Es wird berichtet, dass die Ausnahme in Zeile 702 aufgetreten ist, aber meine JSP ist nur 146 Zeilen lang, sodass ich nicht erkennen kann, welche Zeile erstickt.

Was sind einige gute Techniken zum Debuggen von Fehlern in JSPs? Ich verwende IntelliJ 9 Ultimate als meine IDE.

Vielen Dank

28
ampersandre

Es gibt verschiedene Optionen, die Ihnen helfen können:

  1. Diese Antwort erklärt tatsächlich, wie JSPs speziell debuggt werden: https://stackoverflow.com/questions/33739/jsp-debugging-in-intellij-idea . Ich habe das noch nie versucht, also habe ich die nächsten drei Vorschläge befolgt, als ich JSP, JBoss und IntelliJ verwendet habe ...

  2. Denken Sie daran, dass JSPs zu Klassen kompiliert werden. Wenn Zeile 702 steht, bedeutet dies in der kompilierten Klasse. Wenn Sie haben test.jsp, der Klassenname ist wahrscheinlich test_jsp, öffnen Sie also Ihr JBoss-Arbeitsverzeichnis und suchen Sie nach test_jsp.Java (Sobald Sie das richtige Verzeichnis gefunden haben, werden Sie feststellen, dass die Verzeichnisstruktur mit Ihrer JSP-Verzeichnisstruktur übereinstimmt.) Wann immer ich eine JSP-Ausnahme hatte, konnte ich die Zeile ziemlich leicht finden und sie normalerweise mit der entsprechenden Zeile in der JSP abgleichen.

  3. Haltepunkte funktionieren einwandfrei in Java Klassen , die von einer JSP aufgerufen werden ). Vielleicht können Sie also die Java Skriptcode, den Sie in Ihrer JSP in einer Klasse haben und vom Einstiegspunkt aus debuggen. In Zukunft können Sie es sich auch zur Gewohnheit machen, Ihre Logik so neu anzuordnen, dass sich der Großteil davon in einer Klasse befindet, die gerade ist wird von der JSP aufgerufen, und die JSP ist einfach, unkompliziert und wirft hoffentlich keine Ausnahmen aus. Dies ist ohnehin eine gute Praxis.

  4. Besser noch, entfernen Sie alle (oder praktisch alle) Java Logik in Java Klassen) und lassen Sie JSPs für HTML- und JSP-Tags. Ich weiß, dass dies nicht richtig machbar ist weg, aber auch hier ist es eine gute Idee, solche Probleme langfristig zu vermeiden.

30
Nicole