Generierung von JSP-Klassendateien
Zur Laufzeit lädt die JSP-Engine von WebSphere Application Server JSP-Klassendateien aus dem WAS-Verzeichnis temp oder aus dem Verzeichnis WEB-INF/classes eines Webmoduls. Die JSP-Engine sucht eine Klassendatei zuerst im Verzeichnis temp und erst danach im Verzeichnis WEB-INF/classes des Webmoduls.
In einer Standardinstallation ist das Verzeichnis temp von WebSphere Application Server gewöhnlich Profilstammverzeichnis/temp. Abbildung 1 zeigt die Verarbeitungslogik der JSP-Engine zur Laufzeit.
Verwenden Sie nicht den Befehl CANCEL Name_des_Anwendungsserverprozesses, um einen Server zu stoppen.
Die Verzeichnisse temp werden entfernt, wenn ein Server ordnungsgemäß gestoppt wird.
Sollte es häufiger vorkommen, dass der Server nicht ordnungsgemäß gestoppt wird, was geschieht, wenn Sie den Server abbrechen und nicht stoppen,
werden diese Verzeichnisse nicht entfernt, und der Speicherplatz im HFS für das Verzeichnis
temp reicht nicht mehr aus.
Sie können diesem Speicherproblem vorbeugen, indem Sie
Ihre JSP-Dateien bei der Installation einer Anwendung vorkompilieren oder die Funktion
JspBatchCompiler aufrufen, um die JSP-Dateien vorzukompilieren, bevor sie aufgerufen werden.
Wenn JSPs zur Laufzeit kompiliert werden, werden dieselben generierten Klassen
in jedes temporären Servant-Verzeichnis gestellt.
Diese Klassen werden dann gelöscht, wenn der Server oder Servant erneut gestartet wird, was ineffizient ist und
eine erhöhte Plattenspeicherplatzbelegung zur Folge hat, weil alle Kopien einer Klasse gespeichert werden.
Wenn der Servant oder Server fehlschlägt, werden diese kompilierten Klassen nicht automatisch bereinigt. Außerdem müssen die gelöschten JSP-Klassen nach jedem Neustart des Servants erneut kompiliert werden.
Die oben genannte Ineffizienz wurde korrigiert.
Wenn JSPs zur Laufzeit kompiliert werden, generiert der JSP-Container die kompilierten Klassen im temporären Verzeichnis
eines gemeinsamen Servers, das nach dem Neustart des Servers oder Servants bestehen bleibt.
Der Stapelcompiler unterstützt die Generierung von Klassendateien im Verzeichnis von WebSphere Application Server temp und im Verzeichnis WEB-INF/classes eines Webmoduls, je nach Typ des Stapelcompilerziels. Außerdem ermöglicht der Stapelcompiler die Generierung von Klassendateien in einem Verzeichnis des Dateisystems außerhalb der Zielanwendung. Wenn Sie die Klassendateien im Verzeichnis WEB-INF/classes eines Webmoduls generieren, können Sie das Webmodul als eigenständige WAR-Datei oder als WAR-Datei in einer EAR-Datei einsetzen. Die folgende Tabelle zeigt das Verhalten des Stapelcompilers beim Kompilieren der Klassendateien.
ear.path oder war.path angegeben | enterpriseApp.name angegeben | |
---|---|---|
compileToDir nicht angegeben, compileToWebInf nicht angegeben oder true | Die Klassendateien werden kompiliert und in das Webmodulverzeichnis WEB-INF/classes gestellt. | Die Klassendateien werden kompiliert und in das Webmodulverzeichnis WEB-INF/classes gestellt. |
compileToDir nicht angegeben, compileToWebInf ist false | Die Klassendateien werden kompiliert und in das Webmodulverzeichnis WEB-INF/classes gestellt. | Die Klassendateien werden kompiliert und in das temporäre Verzeichnis von WebSphere Application Server, in der Regel Profilstammverzeichnis/temp, gestellt. |
compileToDir ist angegeben, compileToWebInf ist nicht angegeben oder true oder false | Die Klassendateien werden in dem mit compileToDir angegebenen Verzeichnis kompiliert. | Die Klassendateien werden in dem mit compileToDir angegebenen Verzeichnis kompiliert. |