Ho finalmente ultimato il processo di upgrade & update della piattaforma HW/SW su cui si basa questo Blog.
Il glorioso Pentium MMX che ha sorretto la baracca fino a due settimane fa è stato sostituito con un (ancora) moderno Pentium IV acquistato all’asta su eBay. La necessità di ospitare sul sistema progetti che richiedono maggiori risorse di quelle pretese dal leggero PHP che sostiene la piattaforma WordPress con cui è realizzato il Blog, mi ha costretto a rinnovare il parco macchine. Mentre la migrazione dell’esistente non ha costituito grandi problemi (per la cronaca ne ho approfittato per passare alla versione 2.0.2 di WordPress), i problemi maggiori sono venuti dalle tecnologie java-based (di cui sono un fervente sostenitore ;-).
La distribuzione Linux Fedora Core 4 da me utilizzata, viene fornita con una serie di package a corredo; fra questi sono presenti diversi prodotti Apache (fra cui Tomcat), e una versione open source della Java Virtual Machine (JVM) denominata GCJ. Tale versione non risulta ancora perfettamente compatibile con quella Sun e, fra l’altro, non supporta pienamente AXIS, il motore di Web Services di Apache (cfr: Caitlin Howell).
La versione ufficiale della JVM di Sun, pur potendo essere utilizzata liberamente, non può essere liberamente redistribuita da terzi per motivi di licensing; inoltre il destino beffardo ha fatto si che, per ammissione della stessa Redhat, l’installazione RPM della JVM di Sun sia incompatibile con Fedora Core 4. Fortunatamente, a testimonianza delle difficoltà esistenti, esiste un progetto open source (JPackage) per supportare ed uniformare l’installazione di prodotti java-based su Linux. Naturalmente neanche loro possono redistribuire la JVM di Sun; in compenso forniscono una serie di RPM per supportare il processo di installazione e configurazione delle diverse versioni della JVM di Sun (da scaricare separatamente dal sito ufficiale).
Esistono diversi tutorial on-line su come procedere per installare la JVM di Sun su Fedora, ognuna da la sua ricetta più o meno personale:
- Personal Fedora Core 4 Installation Guide
- Installare Java su Fedora Core 4
- The Unofficial Fedora FAQ
- Fedora Core 4 Linux Installation Notes
- …
Dopo aver tentato diverse varianti, ho seguito una procedura semplificata che nel mio (fortuito) caso ha dato gli esiti sperati:
- ho scaricato da JPackage il file RPM per la configurazione del JDK 1.5.0.06
- ho scaricato dal sito Sun il file auto-estraente del il JDK 1.5.0.06 per Linux (medesima versione delle procedure per la sua configurazione)
- ho installato il JDK di Sun (basta eseguire il file .bin scaricato)
- ho applicato le configurazioni contenute nel RPM preso da JPackage
- ho impostato con alternatives il JDK di Sun come JVM da utilizzare di default
Quello che invece non viene indicato nei diversi tutorial è che per rendere operativo Tomcat 5 con la nuova JVM è necessario aggiungere alle librerie standard il JAR delle Java Transaction API che non fanno parte del JDK e senza cui Tomcat si rifiuta di partire. In questo modo Tomcat, AXIS e le altre applicazioni java-based possono essere eseguite utilizzando la JVM di Sun; così vengono risolti anche i problemi relativi all’impossibilità di eseguire il deploy di semplici classi Java come Web Services in AXIS.
Al termine della vicenda che (visti gli altri impegni) è andata avanti per circa due settimane di tentativi, rimane la soddisfazione di aver vinto la sfida ma anche qualche dubio latente sul tempo perso dietro a falsi problemi indotti da questioni non solo tecnologiche.