ANWENDUNGSGESTALTUNG


Tipps und Fehlerbehebung für Java-Applets
Wenn das Applet läuft, werden in der Statuszeile Nachrichten angezeigt, wie z. B. "<Appletname> geladen", "<Appletname> initialisiert" und "<Appletname> gestartet". Wenn das Applet nicht ordnungsgemäß geladen wurde, wird ein gepunktetes graues Rechteck angezeigt. Informieren Sie sich in den Abschnitten weiter unten und verwenden Sie "Datei - Extras - Java Debug-Konsole anzeigen", um das Applet zu untersuchen und die Ursache des Problems festzustellen.

Fehler bei einem Applet beheben, das nicht läuft


Auf Ressourcendateien zugreifen

Von Java(TM)-Applets werden häufig Ressourcendateien wie Bild- und Audiodateien verwendet. Es gibt drei übliche Arten, auf die Applets auf diese Dateien zugreifen:


Je nach der von Ihnen verwendeten Methode kann Domino möglicherweise die Ressourcendateien für das Applet nicht finden. Die Methode getCodeBase ist die zuverlässigste Methode zum Festlegen von Ressourcendateien. Wenn das Problem auftritt, dass Applets Ihre Ressourcendateien nicht finden, ändern Sie Ihr Applet dahingehend, dass es getCodeBase verwendet. Kompilieren Sie die Dateien neu und wählen Sie "Java-Applet - Aktualisieren", um diese Dateien im Dokument zu ersetzen.

Eine vollständige URL angeben

Wenn Ihr Applet eine vollständige URL angibt, über die eine Ressourcendatei auffindbar ist (z. B. getImage("http://www.irgendwo.com/bilder", "bild.gif"), versucht das Applet, diese Datei unter dieser URL zu finden. Das funktioniert normalerweise, wenn Sie Applets im IBM® Lotus® Notes®-Client in einem Dokument starten, wobei die Server-Tasks vom Domino-Server übernommen werden. Allerdings muss Ihr Notes-Client richtig konfiguriert sein, sodass er auf Dateien im Internet zugreifen kann.

Dementsprechend können Sie auf Bilder zugreifen, die an Notes-Dokumente angehängt sind, indem Sie die Domino-URL so umschreiben, dass ein "$FILE" enthalten ist (z. B. getImage("http://www.irgendwo.com/datenbank.nsf/Hauptansicht/862..12E/$FILE", "bild.gif")). Wie im obigen Beispiel muss der Notes-Client die Zugriffsmöglichkeit auf den Domino-Server haben, damit ein im Notes-Client ausgeführtes Applet auf diese Datei zugreifen kann.

Die Nachteile beim Angeben einer vollständigen URL für eine Appletressourcendatei bestehen darin, dass der Zugriff auf diese Datei über das Internet unter Umständen langsam ist und nicht alle Notes-Clients so eingerichtet sind, dass Sie direkt auf das Internet zugreifen können. Außerdem wird bei diesem Verlauf davon ausgegangen, dass die Adresse der Datei sich nicht ändern wird. Wenn diese Punkte für Sie nicht problematisch sind, ist die Angabe einer vollständigen URL eine zuverlässige Methode zum Zugriff auf Ressourcendateien.

getDocumentBase verwenden

Die unzuverlässigste Art, Ressourcendateien anzugeben, stellt die Methode getDocumentBase dar. Die Methode getDocumentBase zum Festlegen der Ressourcendateien gibt die Basis-URL (d. h. die vollständige Dokument-URL minus dem Dateiname des Dokuments) von dem Dokument zurück, in dem sich das Applet befindet. Wenn z. B. ein Applet in einem Dokument mit der Adresse

http://www.irgendwo.com/test/beispiel.html

ausgeführt wird, liefert die Methode getDocumentBase eine URL zurück, die Folgendes angibt:

http://www.irgendwo.com/test

Von einigen Applets wird diese Methode zum Angeben einer URL für Ressourcendateien verwendet, z. B. getImage(getDocumentBase(), "bild.gif"). In dem obigen Beispiel würde das Applet die Bilddatei unter der folgenden URL suchen:

http://www.irgendwo.com/test/bild.gif

Beachten Sie jedoch, dass eine Domino-URL für ein Dokument nicht einfach auf eine Datei verweist; stattdessen handelt es sich um einen Befehl für den Domino-Server, den HTML-Text zu generieren, aus dem ein Dokument besteht. Wenn Sie die Methode getDocumentBase als Domino-URL verwenden, erhalten Sie unerwartete Ergebnisse. Angenommen, Sie haben ein Applet mit der folgenden Domino-URL verlinkt:

http://www.irgendwo.com/datenbank.nsf/Hauptansicht/862..12E?OpenDocument

In diesem Fall wird beim Verwenden der Methode getDocumentBase zusammen mit dem Methodenaufruf getImage Folgendes zurückgeliefert:

http://www.irgendwo.com/datenbank.nsf/Hauptansicht/bild.gif

Das Applet kann die Datei nicht finden, weil die Dokument-ID fehlt und das Bild ein Dateianhang eines Dokuments ist und deshalb eine Kennung $File als Teil des Namens erforderlich ist.

Da die ID des Dokuments entfernt wurde (und da das Bild sich in einem Dateianhang des Dokuments befindet und deshalb "$FILE" zum Bestimmen des Dateinamens benötigt), kann das angeforderte Bild vom Applet nicht gefunden werden.

getCodeBase verwenden

Die zuverlässigste Art, eine Ressourcendatei für ein Applet anzugeben, ist die Methode getCodeBase. Von der Methode getCodeBase wird die Basis-URL zurückgegeben, von der das Applet geladen wurde. Die Code-Basis für ein Applet können Sie im APPLET-Tag mit dem Attribut CODEBASE angeben. Wenn Domino HTML-Code für ein Applet generiert, das in ein Notes-Dokument eingefügt wurde, wird eine vollständige URL für das Attribut CODEBASE erstellt. Wenn z. B. das obige Beispiel verwendet wird, gibt die Methode getCodeBase Folgendes zurück:

http://www.irgendwo.com/datenbank.nsf/Hauptansicht/862..12E/$FILE

Bei einer Verwendung mit Ressourcen-Anforderungen wie getImage gibt getCodeBase die Ressourcendatei richtig an. Beispiel:

getImage(getCodeBase(), "bild.gif")

ergibt die folgende URL, wenn das Applet von Domino bedient wird:

http://www.irgendwo.com/datenbank.nsf/Hauptansicht/862..12E/$FILE/bild.gif

Dies hat eine URL zum Ergebnis, mit der das Applet die Datei erfolgreich ausfindig machen kann.

Parameterwerte zum Auffinden von Ressourcendateien ändern

Einige Applets enthalten Parameter, die auf Ressourcendateien oder auf Verzeichnisse verweisen, in denen Ressourcendateien enthalten sind. Ein Applet könnte z. B. einen Parameter enthalten, mit dem eine Datei zur Verwendung als Hintergrundbild oder ein Verzeichnis für Audiodateien angegeben wird. Sie müssen möglicherweise das Applet dahingehend bearbeiten, dass diese Parameter relativ zur Code-Basis und nicht zur Dokument-Basis angegeben werden.

Wenn Sie das Applet nicht selbst programmieren, wenn Sie beispielsweise einen Link mit einem Applet im Internet einbauen oder wenn Sie sich einen Satz von .class-Dateien ohne den zugehörigen Quellcode besorgt haben, müssen Sie vielleicht einen Parameterwert ändern, nachdem Sie das Applet in eine Maske oder ein Dokument eingefügt haben. Stellen Sie in diesem Fall die Zeichenfolge "$notes_codebase" dem Parameterwert voran.

Verwenden Sie z. B. anstelle von "bilder/bild.gif" die Zeichenfolge "$notes_codebase/bilder/bild.gif" als Parameterwert. Domino konvertiert jedes Vorkommen der Zeichenfolge $notes_codebase in einem Parameter in die Code-Basis für das Applet. Der Parameterwert "$notes_codebase/bilder/bild.gif" wird also von Domino folgendermaßen konvertiert:

http://www.irgendwo.com/datenbank.nsf/Hauptansicht/862..12E/$FILE/bilder/bild.gif

Da dies im Effekt bedeutet, dass Sie eine vollständige URL zur Verfügung stellen, wenn Sie einen Parameterwert angeben, wird die Methode getDocumentBase im Applet übergangen, und das Applet kann die Ressourcendatei finden.

Siehe auch