Kapitel 8. JSP Seiten debuggen

Inhaltsverzeichnis

Das Lomboz-Plugin liefert ja bereits beim Erstellen von JSP-Seiten sehr viel Unterstützung, so dass viele Fehler vermieden werden können. Allerdings kann es trotzdem vorkommen, dass man einem Fehler nur im Debugger auf die Spur kommt. Das ist bislang gerade bei JSP-Seiten relativ schwierig, weil sie sich nicht so ohne weiteres mit Breakpoints versehen und Codestellen inspizieren lassen.

Bekanntlich werden JSP-Seiten spätestens vor dem ersten Aufruf zu einem ganze normalen Servlet übersetzt. Wenn man dafür sorgt, dass diese „generierten“ Servlets im Workspace von Eclipse auftauchen, dann kann man genau wie in Kapitel .. beschrieben mit dem Debugger arbeiten.

8.1. Schritt für Schritt

Damit alles richtig funktioniert sind folgende Schritte notwendig:

  1. Eigenes Source-Verzeichnis einrichten, welches die Servlets aufnimmt.
  2. Arbeitsverzeichnis von Tomcat so abändern, dass Servlets genau in diesem Verzeichnis erzeugt werden.
  3. Tomcat Servlet-Compiler „Jasper“ patchen, weil in diesem Szenario eine Schwierigkeit zu Tage tritt, die sonst eigentlich keine Rolle spielt.

Punkt 1 wird vom Lomboz-Plugin automatisch erledigt. Das Verzeichnis „j2src“ ist Ihnen vielleicht schon aufgefallen.

Punkt 2 erfolgt analog wie die Änderung des Contextes in der Tomcat-Konfigurationsdatei (siehe Abschnitt 3.1.4)

<Context reloadable = "true" displayName="Develop"
docBase="C:\Programme\eclipse\workspace\Test-Servlet\web" cookies="true"
path="/test"/
workDir="C:\Programme\eclipse\workspace\Test-Servlet\j2src\org\apache\jsp" />1
1 hier wird genau auf das „j2src“-Verzeichnis verwiesen, damit Jasper die generierten Servlets darin ablegt.

Der Grund warum das „workDir“ auf „org\apache\jsp“ endet ist derselbe, der es auch erforderlich macht Tomcat zu patchen[5]:

Damit die Servlets in Eclipse compiliert werden können müssen die Package-Deklarationen zu den Verzeichnissen passen. Das Standard-Package für JSP-Servlets ist immer „org.apache.jsp“ und der Tomcat-Patch sorgt nun dafür, dass für Seiten, die nicht auf der obersten Ebene des Webservers liegen, die Package-Deklaration von Jasper entsprechend erweitert wird.

Eine JSP-Seite mit der URI „/test/index.jsp“ erhält demnach das Package „org.apache.jsp.test“.

Zunächst muss man sich die zwei geänderten Class-Files bei Sysdeo herunterladen (findet man im unteren Teil der Seite http://www.sysdeo.com/eclipse/tomcatPlugin.html.

Anmerkung
Achtung: Für die Version 4.1.12 und 4.1.18 werden unterscheidliche Patches benötigt.

Um den Patch zu installieren muss man drei Class-Files an die richtig Stelle kopieren bzw. in das bestehende JAR-File integrieren. Hat man die Class-Files einzeln unter TOMCAT_HOME/common/classes, kopiert man die aus dem ZIP-Archiv einfach darüber.

Liegen die Class-Files unter TOMCAT_HOME/common/lib als JAR-Archiv vor, so muss man die dort Class-Files des Archivs ersetzen (z.B. mit WinZip). Bitte machen Sie vorher eine Sicherheitskopie von den betreffenden Dateien, damit nichts schiefgehen kann.

Fussnoten

[5] Nur die Versionen 4.x bei 3.x kann man auf den Patch verzichten