IMPOSTAZIONE DELLE APPLICAZIONI
Risoluzione dei problemi di un'applet non in fase di esecuzione
Le applet Java(TM) utilizzano frequentemente file di risorsa, come ad esempio immagini e file audio. Vi sono tre modi comuni con cui le applet accedono a tali file:
Specifica di un indirizzo URL completo
Qualora l'applet specifichi un URL completo come ubicazione di un file risorsa, ad esempio, getImage("http://www.someplace.com/images", "image.gif"), l'applet cercherà di prelevare il file presso tale URL. Normalmente questo sistema funziona quando un'applet viene eseguita all'interno del client IBM® Lotus® Notes® in un documento servito da un server Domino, sempre che il client Notes sia configurato correttamente per accedere ai file ubicati in Internet.
Allo stesso modo, è possibile accedere alle immagini allegate ai documenti di Notes creando un URL di Domino che comprenda un campo "$FILE", ad esempio, getImage("http://www.someplace.com/database.nsf/MasterView/862..12E/$FILE", "image.gif"). Come in precedenza, il client Notes deve essere in grado di accedere al server Domino per fare in modo che un'applet eseguita sul client Notes sia in grado di accedere a questo file.
Uno degli svantaggi insiti nello specificare un URL completo per il file risorsa di un'applet consiste nel fatto che l'accesso a tali file attraverso Internet può risultare lento e non tutti i client Notes sono configurati in modo da accedere direttamente a Internet. Inoltre, questo modo di operare parte dal presupposto che l'ubicazione del file non subirà alcun cambiamento. Qualora questi fatti non siano fonte di preoccupazione, specificare un URL completo è un modo affidabile di accedere ai file di risorsa.
Uso di getDocumentBase
Il metodo meno affidabile per specificare i file di risorsa è il metodo getDocumentBase. Il metodo getDocumentBase per specificare i file di risorsa restituisce l'indirizzo URL di base (cioè l'URL completo del documento meno il nome del file) del documento nel quale l'applet si trova. Ad esempio, se viene eseguita un'applet all'interno di un documento ubicato all'indirizzo:
http://www.someplace.com/test/example.html
il metodo getDocumentBase restituisce un URL che specifica:
http://www.someplace.com/test
Alcune applet usano questo metodo per specificare un URL come file risorsa, ad esempio, getImage(getDocumentBase(), "image.gif". Ad esempio, usando il summenzionato URL, l'applet cercherà l'immagine all'indirizzo URL
http://www.someplace.com/test/image.gif
Notare tuttavia che l'URL Domino di un documento non fa semplicemente riferimento a un file; è invece il comando usato perché il server Domino generi il codice HTML per la rappresentazione di un documento. Usando il metodo getDocumentBase come URL di Domino, è possibile ottenere risultati inattesi. Ad esempio, si supponga di collegarsi a un'applet ubicata al seguente URL di Domino:
http://www.someplace.com/database.nsf/MasterView/862..12E?OpenDocument
In questo caso, usando il metodo getDocumentBase assieme alla chiamata getImage viene restituito quanto segue:
http://www.someplace.com/database.nsf/MasterView/image.gif
L'applet non è in grado di trovare il file in quanto l'ID del documento è stato perso, e l'immagine è allegata a un documento, richiedendo un qualificatore $FILE come parte del nome.
Poiché l'ID del documento è stato rimosso (e poiché l'immagine si trova in un allegato all'interno del documento e ha pertanto bisogno di un campo "$FILE" per qualificare il nome del file), l'applet non è in grado di trovare l'immagine richiesta.
Uso di getCodeBase
Il sistema più affidabile per specificare un file di risorsa per un'applet consiste nel metodo getCodeBase. Il metodo getCodeBase restituisce l'URL di base dal quale l'applet è stato caricato. Il CodeBase di un'applet può essere specificato dall'attributo CodeBase nel tag Applet. Quando Domino genera l'HTML di un'applet inserito in un documento di Notes, esso genera un URL completo per l'attributo CodeBase. Ad esempio, dato l'esempio riportato sopra, il metodo getCodeBase restituisce quanto segue:
http://www.someplace.com/database.nsf/MasterView/862..12E/$FILE
Usato assieme alle chiamate alle risorse, come ad esempio le chiamate getImage, getCodeBase specifica correttamente il file risorsa. Ad esempio:
getImage(getCodeBase(), "image.gif")
fornisce l'URL che segue quando l'applet è servita da Domino:
http://www.someplace.com/database.nsf/MasterView/862..12E/$FILE/image.gif
Questo da come risultato un URL che consente all'applet di trovare con successo il file.
Modifica dei valori di un parametro per individuare i file risorsa
Alcune applet includono parametri che fanno riferimento a file di risorsa o a directory contenenti dei file di risorsa. Ad esempio, un'applet può contenere un parametro che specifichi un file da usare come immagine per lo sfondo, oppure una directory per i file audio. Può essere necessario modificare l'applet in modo che questi parametri siano relativi al codice anziché al documento di base.
Qualora venga usata un'applet già esistente, ad esempio collegandosi a un'applet ubicata in Internet oppure se viene usato un gruppo di file .class forniti senza codice sorgente, può essere necessario modificare il valore di un parametro dopo avere inserito l'applet in un modulo o documento. In tale caso, aggiungere la stringa "$notes_codebase" prima del valore del parametro.
Ad esempio, usare "$notes_codebase/images/image.gif" come valore del parametro al posto di "images/image.gif",. Domino converte qualsiasi ricorrenza della stringa $notes_codebase in un parametro in un codice per l'applet. Il valore del parametro "$notes_codebase/images/image.gif" viene quindi convertito da Domino in:
http://www.someplace.com/database.nsf/MasterView/862..12E/$FILE/images/image.gif
Dato che ciò significa che si sta fornendo un URL completo mentre si specifica il valore del parametro, il metodo getDocumentBase nell'applet viene sovrascritto, e l'applet sarà in grado di trovare il file di risorsa.
Vedere anche