Porting Su Hosting Java - Home Page Danilo Spada

Redatto da:
Dr. ing. Candido Fracassi
Dr ing. Francesco Brindisi
Dr ing. Luciano Corelli
Rivisto da:
Ing. Danilo Spada
Porting Su Hostingjava
Consigli per il caricamento di una propria applicazione su hostingjava
Il porting è una operazione con cui un programma, sviluppato originariamente per una
piattaforma , viene"ritoccato" nel suo codice sorgente in modo da poter essere utilizzato in
un'altra piattaforma. L'operazione solitamente non è banale, soprattutto se il porting
avviene tra piattaforme molto differenti a livello architetturale. Esistono, comunque, delle
linee guida tramite le quali è possibile scrivere programmi facilmente "portabili". Talvolta il
porting può anche essere impossibile, il più delle volte per il fatto che il programma fa
delle assunzioni particolari sulla piattaforma in cui deve essere eseguito (ad esempio,
utilizza un particolare componente hardware non presente in nessun'altra piattaforma).
Utilizzando il linguaggio Java, in effetti, non si incontrano grossi problemi di porting ed
usando dei piccoli accorgimenti in fase di sviluppo l’applicazione funzionerà subito anche
quando trasferita su una piattaforma diversa da quella su cui è stata sviluppata. Ma tra il
dire e il fare c’è di mezzo il mare recita un adagio e questa operazione va comunque
eseguita seguendo criteri opportuni. Per esempio è opportuno definire i path all’interno del
proprio codice utilizzando il campo File.separator della classe File invece del consueto
forward o backward slash.
Nel nostro caso si ipotizza di voler trasferire un’applicazione sviluppata in locale usando
una certa versione di Tomcat ed un sistema operativo (probabilmente Microsoft) su un
server su cui gira Linux Fedora e la cui versione di Tomcat è la 5.5.7. A parte accorgimenti
particolari che si dovranno tenere se si vogliono gestire uploads nella propria applicazione
comunque, il più delle volte basterà riconfigurare opportunamente i parametri di
connessione al database.
1
Redatto da:
Dr. ing. Candido Fracassi
Dr ing. Francesco Brindisi
Dr ing. Luciano Corelli
Rivisto da:
Ing. Danilo Spada
Accorgimenti per applicazioni che usano l’Upload
Gli accorgimenti che si dovranno tenere in fase di sviluppo per le applicazioni che
gestiscono l’upload do files derivano dal fatto che quando si arresta e si riavvia
un’applicazione su hostingjava, questa viene sempre ricaricata su una nuova directory
temporanea. Tale directory temporanea sarà quella effettiva di lavoro, ma il suo contenuto
andrà perduto ogni volta che si riavvia l’applicazione. Se si vogliono uploadare dei files ed
averli disponibili sia subito che dopo il riavvio dell’applicazione, si dovrà quindi gestire tale
dualità effettuando le varie operazioni su ambo le directory in contemporanea, come se
una fosse, per così dire, di backup. Tali directories sono indicate rispettivamente come
PERCORSO FISICO e
PERCORSO ANTILOCKIN nell’interfaccia di amministrazione. Quest’ultima, che come detto
varia ogni volta, può essere acceduta dall’interno dell’applicazione mediante il metodo
getRealPath(nomeCartella), per esempio getRealPath(WEB-INF).
Procedure da eseguire per creare un dominio:
Si apre il web browser e si accede ad www.hostingjava.it
2
Redatto da:
Dr. ing. Candido Fracassi
Dr ing. Francesco Brindisi
Dr ing. Luciano Corelli
Rivisto da:
Ing. Danilo Spada
qui si procede alla propria registrazione, scegliendo username e password ed inserendo
un’email di riferimento nella finestra di seguito riportata.
3
Redatto da:
Dr. ing. Candido Fracassi
Dr ing. Francesco Brindisi
Dr ing. Luciano Corelli
Rivisto da:
Ing. Danilo Spada
N.B.
Si noti che lo username è quello che verrà utilizzato per dare il nome al proprio
contesto.
Una volta che la registrazione è stata effettuata si può effettuare il login ed accedere
all’interfaccia di amministrazione.
Caricamento della propria applicazione:
Per uploadare la propria applicazione, si consiglia di utilizzare un client ftp, poiché se ci
sono sessioni attive, si potrebbero verificare dei problemi durante il caricamento.
Disponendo di un client ftp, la connessione al server avviene impostando l’url di
connessione, username e password; ad esempio: se la nostra username di registrazione
fosse club8 allora l’ url di connessione sarebbe ftp:\\[email protected]. In
alternativa si può accedere ftp utilizzando il proprio browser, cliccando sul link
ftp://www.hostingjava.it/
dalla propria interfaccia di amministrazione (dopo essersi
loggati). Se si usa Internet Explorer è opportuno deflaggare tra le opzioni avanzate del
browser, l’opzione “usa ftp passivo”.
4
Redatto da:
Dr. ing. Candido Fracassi
Dr ing. Francesco Brindisi
Dr ing. Luciano Corelli
Rivisto da:
Ing. Danilo Spada
Una volta stabilita la connessione ftp è sufficiente fare una copia della propria applicazione
direttamente sul server:
5
Redatto da:
Dr. ing. Candido Fracassi
Dr ing. Francesco Brindisi
Dr ing. Luciano Corelli
Rivisto da:
Ing. Danilo Spada
Terminata la procedura si dovrà avviare l’applicazione (start) (e lanciare la servlet che
costruisce il database se si usa MySql, come spiegato più avanti)..se tutto va bene, la
nostra applicazione è pronta a funzionare!
Per le successive modifiche bisognerà effettuare il riavvio (stop – start) o semplicemente il
reload dell’applicazione, a seconda dei casi. Il reload andrà bene se si aggiornano le classi
dell’applicazione, mentre se si modifica, per esempio il file web.xml, bisognerà riavviare.
Amministrazione della propria applicazione:
Una volta loggati si apre una schermata tipo questa:
6
Redatto da:
Dr. ing. Candido Fracassi
Dr ing. Francesco Brindisi
Dr ing. Luciano Corelli
Rivisto da:
Ing. Danilo Spada
7
Redatto da:
Dr. ing. Candido Fracassi
Dr ing. Francesco Brindisi
Dr ing. Luciano Corelli
Rivisto da:
Ing. Danilo Spada
Si può notare la presenza di informazioni relative al nome del contesto, i percorsi utilizzati
dal server per l’esecuzione dell’applicazione, informazioni sui driver dei data base e sui
relativi url da utilizzare all’interno della propria applicazione. Si hanno inoltre a disposizione
le funzionalità di arresto, avvio e reload dell’applicazione, nonché la possibilità di
controllare il file di log della stessa (log tomcat).
HSQLDB
Per quanto riguarda l’uso del database HSQLDB nella propria applicazione, si tenga
presente il fatto che su hostingjava funziona in modalità standalone, quindi il database
supporta una connessione per volta (si veda a tal proposito il topic DataBase&HostingJAva
sul forum). Si consiglia allora di utilizzare, per gestire la connessione, il pattern
Singleton
(si
veda
a
tal
proposito
il
documento
SingletonPattern
all’url
http://www.hostingjava.it/-Impiegato/documentazione). Dato inoltre che il driver per
questo RDBMS non è presente nel container bisogna inserire il file hsqldb.jar all’interno
della carella lib della propria applicazione.
Si consideri infine che è possibile preparae in locale i file che rappresentano il database (i
tre files con estensioni: log, properties e script) e caricarli sul server hostingjava. Si
tenga bene a mente però il fatto che, qualora si facessero errori nel settaggio dell’url
all’interno della nostra applicazione (per esempio dando un path errato), HSQLDB
costruirebbe un altro database con lo stesso nome, ma nella posizione indicata
erroneamente (diversa da quella in cui si è caricato quello preparato in locale). Questo
errore, abbastanza difficile da individuare, si manifesta con l’impossibilità di accedere alle
tabelle cercate. Quindi non si verificano problemi di connessione (perché il database a cui
8
Redatto da:
Dr. ing. Candido Fracassi
Dr ing. Francesco Brindisi
Dr ing. Luciano Corelli
Rivisto da:
Ing. Danilo Spada
connettersi viene creato al volo!) ma naturalmente dentro di esso non ci saranno ne le
tabelle ne i dati attesi; il fatto che NON si verifichino problemi di connessione, ma di
accesso alle tabelle rende difficile l’individuazione dell’errore. Si dovrà quindi posizionare il
database all’interno della propria applicazione (dentro WEB_INF/db per esempio) e
puntarlo con estrema attenzione, usando nell’url il percorso fisico specificato all’interno
dell’interfaccia di amministrazione (che per es sarà: /HOME/HOSTINGJAVA.IT/IMPIEGATO )
In questo caso quindi l’url di connessione sarà:
“jdbc:hsqldb:file:/HOME/HOSTINGJAVA.IT/IMPIEGATO/WEB-INF/DB/NOMESCELTOPERILDB”.
L’ultima cosa da tener presente quando si usa HSQLDB è che ogni volta che si riavvia
l’applicazione si dovrà rimuovere a mano il file con estensione lck dalla cartella in cui si è
posizionato il db.
MySql
Per quanto riguarda l’uso del database MySql, questo viene gestito mediante datasource
(quindi con un connection pool di cui si occupa il container di tomcat) ed i drivers sono già
disponibili
(si
veda
a
tal
proposito
il
documento
http://www.hostingjava.it/-Impiegato/documentazione).
L’utilizzo
DataSource
dello
stesso
all’url
risulta
perciò estremamente semplice ed efficiente. Basterà utilizzare all’interno delle proprie
servlet le istruzioni:
javax.sql.DataSource ds= (javax.sql.DataSource) new
javax.naming.InitialContext().lookup("java:comp/env/jdbc/impiegato");
Connection conn=ds.getConnection();
per acquisire una connessione al database e l’istruzione:
conn.close();
per rilasciarla dopo averla usata.
N.B.
9
Redatto da:
Dr. ing. Candido Fracassi
Dr ing. Francesco Brindisi
Dr ing. Luciano Corelli
Rivisto da:
Ing. Danilo Spada
Se si utilizza MySql, bisogna costruire le tabelle ed eseguire il popolamento
iniziale del database mediante servlet. Questo perché sono chiuse le porte di
comunicazione con MySql e quindi tale operazione non può essere eseguita
accedendo mediante un client MySql.
Indice:
Porting Su Hostingjava.........................................................................................................................1
Consigli per il caricamento di una propria applicazione su hostingjava.......................................... 1
Accorgimenti per applicazioni che usano l’Upload......................................................................... 2
Procedure da eseguire per creare un dominio:................................................................................. 2
Caricamento della propria applicazione:.............................................................................................. 4
Amministrazione della propria applicazione:...................................................................................6
HSQLDB.......................................................................................................................................... 8
MySql............................................................................................................................................... 9
Indice:............................................................................................................................................. 10
10