2009-06-24 6 views
1

Ich debugge eine Anwendung auf einem Remote-Server, auf dem JBoss mit Eclipse ausgeführt wird. Mein besonderes Problem ist ein NullPointerException in einer JSP. Die JSP enthält zu viel Java-Code in Scriptlets, aber Refactoring ist leider keine Option. Die Linie zu finden, die die NullPointerException wirft, war unglaublich schwierig und ich bleibe stecken.Wie kann ich JSPs auf dem Remote-JBoss-Server debuggen?

Wie kann ich diese JSP remote debuggen, um die Zeile des Scriplet zu finden, die die NullPointerException wirft?

Ich fand das Problem durch Auskommentieren von Zeilen der JSP, bis ich das Problem isoliert. Mühsam, aber es hat funktioniert.

Antwort

2

Sie können Remote-Debugging auf einigen Anwendungsservern aktivieren, indem Sie so etwas wie dieses

-Xdebug -Xrunjdwp:transport=dt_socket,address=5001,server=y,suspend=n 

an die Befehlszeile hinzufügen. Dann verbinden Sie sich in Ihrer IDE mit dem Port 5001 für das Remote-Debugging. This page hat einige Beispiele für verschiedene Anwendungsserver.

Ich finde, dass Debug-JSPs manchmal leicht gemacht werden können, wenn Sie die Java-Quelle für die kompilierten JSPs haben. Überprüfen Sie das Handbuch Ihres Anwendungsservers auf JSP-Kompilierung oder kompilieren Sie Ihre JSPs vor und speichern Sie die .java-Dateien. Verwenden Sie dann diese Dateien als Quelle für den Debugger.

+0

akzeptiert, da dies der richtige Befehl zum Starten von JBoss ist, um eine Remote-Debugsitzung zu verbinden. – Owen

1

Im Allgemeinen können Sie den Fehler im Serverprotokoll finden. Da Sie es auf einem Remote-Server ausführen, wechseln Sie zu diesem Computer und überprüfen Sie das Protokoll. Es sollte auf den Fehler hinweisen.

Ich finde es einfacher zu debuggen, wenn ich eine lokale Version der Website ausführen, wie ich das Serverprotokoll über Eclipse in Echtzeit überwachen kann. Vielleicht würde es sich lohnen, eine lokale Kopie zu erstellen, mit der Sie entwickeln können, und dann einfach auf dem Remote-Server zu implementieren, wenn Sie den Code vollständig debuggt haben.

Hoffe, das hilft.

+0

letzte Zeile des Server-Log ist: Nullpointer bei org.apache.jsp.myjsp._jspService (Unknown Source) ich verengen kann es Java-Code in der jsp die Ausnahme zu werfen, aber die Linie verengen kann . – Owen

+0

Klingt wie die Debugging-Symbole von dieser JSP entfernt werden. Selbst das Debuggen wird nicht viel helfen. –

+0

Sieht so aus, als müssten Sie manuell debuggen. Null-Tests und dergleichen. Nicht schön, aber effektiv. – kgrad

Verwandte Themen