Enterprise Java per Linux HOWTO

Greg Wilkins [email protected] originale di Gary Meyer [email protected]

v0.2, 2001-11-07
Come predisporre un ambiente Enterprise Java in Linux che comprenda un Java Development Kit ed un Web server che supporti i Java servlet, che acceda ad un database tramite JDBC, e che supporti l'uso degli Enterprise Java Beans (EJB).

1. Introduzione

1.1 Generalità

La stesura di questo documento ha avuto inizio il gennaio 1999 da parte di Gary Meyer ( [email protected]) dopo molte settimane di installazioni di vari prodotti Enterprise Java open source e proprietari per Linux. È definito "Enterprise Java" ciò che usa le API Java Enterprise.

Alcuni aggiornamenti sono stati aggiunti da Greg Wilkins ( [email protected]) nel novembre 2001 ciò nondimeno parti del documento sono ancora obsolete.

1.2 Pubblico

Questo HOWTO è inidirizzato a professionisti del software che siano interessati a valutare, sviluppare o distribuire Enterprise Java per Linux. Si assume che il lettore abbia una limitata conoscenza ed esperienza di Linux o di Java.

1.3 Nuove versioni

La versione più recente di questo documento può essere trovata sul sito del Linux Documentation Project: http://linuxdoc.org/HOWTO/Enterprise-Java-for-Linux-HOWTO.html

1.4 Copyright e licenza

Questo documento è un Copyright (c) 1999-2001 di Gary Meyer e Greg Wilkins. La copia, distribuzione e/o modifica di questo documento è permessa entro i termini della licenza GNU Free Documentation License, versione 1.1 o di una qualsiasi successiva versione pubblicata dalla Free Software Foundation; senza "Sezioni non modificabili", senza "Testi copertina", e senza "Testi di ultima di copertina". Una copia della licenza è disponibile all'indirizzo http://www.gnu.org/copyleft/fdl.html

1.5 Liberatoria

I suggerimenti contenuti in questo documento sono stati forniti per aiutare ad avere il più velocemente possibile un ambiente Java Enterprise in Linux attivo e funzionante. I suggerimenti non sono raccomandazioni o adesioni a particolari prodotti. Dopo aver familiarizzato con le scelte disponibili si potranno fare proprie valutazioni di prodotto e si potrà determinare quali opzioni siano migliori per il proprio scopo.

Per lo scopo di questo HOWTO, "Enterprise Java" definisce l'uso delle API Java Enterprise. Questo HOWTO non affronta la scalabilità, la disponibilità, la gestibilità ed altri simili aspetti del software che sono spesso associati alla parola "enterprise".

1.6 Future potenziali sezioni

Questo HOWTO è focalizzato sugli aspetti più popolari dell'Enterprise Java. Potrebbero essere aggiunte a questo HOWTO le seguenti sezioni.

Interessati a scrivere una sezione?

Contattare l'autore, Gary Meyer, presso ( [email protected]).

1.7 Altre risorse

Il sito web di App-Serv Center all'indirizzo http://www.app-serv.com/.

Java Enterprise in a Nutshell di David Flanagan ed altri all'indirizzo http://www.oreilly.com/catalog/jentnut/.

1.8 Feedback

Si prega di sottoporre tutte le aggiunte e le correzioni all'autore, Gary Meyer, presso ( [email protected]).

2. Come predisporre il Java Development Kit

Ci sono molti Java Development Kit disponibili per Linux. Questi includono:

Se si volesse provare solo un JDK, suggerirei inizialmente di provare il Sun J2SE, a meno che richiesto diversamente da particolare software in uso o che si abbia intenzione di usare. Inoltre, se si è interessati ad utilizzare una implementazione open source, sarà necessario ricorrere a Kaffe.

2.1 Blackdown JDK

Generalità

Blackdown JDK è un port del Sun JDK su Linux. Al tempo della scrittura di questo documento, il Blackdown JDK è allineato con il JDK 1.2.2 sull'architettura Intel e con il JDK 1.1.8 su PowerPC.

Nel Dicembre 1999, Sun ha annunciato la disponibilità della piattaforma Java 2, Standard Edition (J2SE) su Linux. Questo rilascio Sun ha un impatto significativo su Blackdown perché Blackdown è un port. In un comunicato stampa, Sun ha affermato, "L'annuncio di questa settimana non sarebbe stato possibile senza la collaborazione di Blackdown, un gruppo di sviluppatori ed appassionati sparsi per il mondo. Sin dalla sua fondazione, Blackdown è stato un fornitore di tecnologia Java per la piattaforma Linux. Il loro continuo sforzo per diversi anni ha gettato le fondamenta per il rilascio del port della piattaforma Java 2 per Linux; in particolare il loro sforzo è stato determinante per il successo di questo rilascio".

Inoltre, il comunicato stampa della Sun prosegue con, "Blackdown.org continua ad essere una preziosa fonte di tecnologia Java per Linux, compresi i rilasci di JDK 1.1.x".

Download

Il JDK Blackdown può essere ottenuto da http://www.blackdown.org.

Dalla pagina iniziale di Blackdown, selezionare l'opzione download ed un sito mirror.

Selezionare la versione desiderata del JDK. Se il software che si vuole utilizzare non indica una specifica versione, suggerirei di usare la più recente, che al momento della stesura di questo documento è la JDK 1.2.2.

Selezionare l'architettura della macchina su cui si stà installando. Per l'architettura Intel, selezionare i386.

Selezionare la "release candidate" desiderata. Se il software che si vuole utilizzare non ne indica una specifica, suggerirei di usare la più recente o la versione finale se disponibile.

Per il JDK Blackdown, è probabile siano disponibili un certo numero di file presenti in diversi formati d'impacchettamento. Inoltre si deve essere sicuri di avere il supporto per la giusta libreria libc per la propria distribuzione Linux.

Tra i file disponibili sono compresi:

Suggerirei di scaricare solo il jdk per sviluppare Java in inglese.

Quando si scaricano i file di Blackdown, si può scegliere tra libc5 e glibc e potenzialmente anche una specifica versione di glibc. Tra le scelte di libc sono incluse:

Se si sta usando una distribuzione più recente di Linux, si avrà con molta probabilità glibc. Io suggerisco di provare in prima istanza glibc.

Installazione

Suggerirei d'installare i file nella directory /usr/local. Dopo aver scaricato i file, eseguire:

mkdir /usr/local/blackdown
mv jdk* /usr/local/blackdown

Se si è scaricato il file in formato tarball, eseguire:

tar zxvf [filename].tar.gz

Dove [filename] è il nome del file.

Nella directory /usr/local/blackdown si dovrebbe vedere una directory chiamata jdk1.2.2.

L'esempio di cui sopra mostra la versione candidata al rilascio 3 per l'architettura Intel del JDK 1.2.2. Sostituire il nome del file, il numero della versione, il numero di versione candidata per il rilascio e l'architettura in modo appropriato. Si dovrà aprire ogni file del pacchetto di distribuzione nella maniera sopra indicata.

Predisporre l'ambiente

Le variabi d'ambiente da impostare sono:

La variabile d'ambiente JAVA_HOME fa riferimento alla directory di base del JDK installato. Impostare la variabile d'ambiente JAVA_HOME con la directory dove è stata appena installata la versione del JDK Blackdown.

export JAVA_HOME=/usr/local/blackdown/jdk1.2.2

La directory $JAVA_HOME/bin contiene il compilatore Java (javac) e la Java Virtual Machine (java), come anche altri programmi necessari per lo sviluppo. Aggiungere $JAVA_HOME/bin al PATH.

export PATH=$JAVA_HOME/bin:$PATH

Notare che $JAVA_HOME/bin è stato aggiunto al principio del PATH in modo che venga utilizzato il JDK installato piuttosto che un qualche JDK che potrebbe essere già stato incluso nella distribuzione Linux in uso.

Per avere conferma che il PATH sia correttamente impostato, si controlli quali compilatore Java e JVM siano installati.

which javac
which java

L'output dovrebbe far riferimento a javac e java nella directory $JAVA_HOME/bin.

La variabile d'ambiente CLASSPATH fa riferimento a tutti i JAR ed a tutte le directory che sono necessarie per la compilazione e l'esecuzione dei programmi Java.

Per il JDK 1.2.2, non è necessario inizialmente aggiungere alcun JAR al proprio CLASSPATH. I JAR possono essere inseriti in file .jar o in file .zip.

export CLASSPATH=$CLASSPATH:.

Verifica dell'installazione

Si è ora in grado di compilare ed eseguire una semplice applicazione. Creare il seguente programma.

class HelloWorld {
  public static void main (String[] args) {
    System.out.println("Hello, World!");
  }
}

Compilare il programma con il compilatore Java.

javac HelloWorld.java

Se il compilatore produce errori si controlli la sintassi e si verifichino le variabili PATH e CLASSPATH.

Eseguire il programma con la JVM.

java HelloWorld

Se la JVM produce errori, si verifichino le variabili PATH e CLASSPATH.

Si dovrebbe ottenere il seguente output:

Hello, World!

Congratulazioni, si è installato, configurato e verificato un ambiente per il JDK Blackdown per Linux.

Maggiori informazioni

Per maggiori informazioni sul JDK Blackdown, si veda il sito di Blackdown all'indirizzo http://www.blackdown.org. È disponibile un'eccellente FAQ.

2.2 IBM Java Developer Kit

Generalità

Il Java Developer Kit di IBM ed il suo ambiente di esecuzione (Runtime Environment) ha passato il test della Sun sulla compatibilità Java ed include l'ultima versione in manutenzione (dal sito di IBM).

Al tempo della redazione di questo documento, Il Java Developer Kit IBM è allineato con il JDK 1.1.8 ed è disponibile solo per la piattaforma Intel.

Download

Il Java Developer Kit di IBM può essere ottenuto da http://www.ibm.com/java/jdk/118/linux.

Per scaricarlo è necessario registrarsi presso il sito IBM e acconsentire alla licenza in linea.

I file disponibili includono:

Considerando che si ha intenzione di fare sviluppo Java suggerirei di scaricare il file tarball ibm-jdk.

Installazione

Suggerirei di installare i file nella directory /usr/local. Dopo aver scaricato i file, eseguire:

mkdir /usr/local/ibm
mv ibm-jdk-l118-linux-x86.tgz /usr/local/ibm

Si potranno quindi aprire i pacchetti di distribuzione. Per farlo digitare:

tar zxvf ibm-jdk-l118-linux-x86.tgz

Nella directory /usr/local/ibm si dovrebbe poter vedere la directory jdk118.

L'esempio sopra fatto mostra il JDK 1.1.8 per l'architettura Intel. Si sostituiscano i nomi dei file in modo appropriato.

Predisporre l'ambiente

Le variabili d'ambiente da impostare sono:

La variabile d'ambiente JAVA_HOME fa riferimento alla directory di base del
JDK installato. Impostare la variabile d'ambiente JAVA_HOME con la directory
dove si è appena installata la versione del Java Developer Kit di IBM. 

La directory $JAVA_HOME/bin contiene il compilatore Java (javac) e la Java Virtual Machine (java), come anche altri programmi necessari per lo sviluppo. Aggiungere $JAVA_HOME/bin al PATH.

export PATH=$JAVA_HOME/bin:$PATH

Notare che $JAVA_HOME/bin è stato aggiunto al principio del PATH in modo che venga utilizzato il JDK installato piuttosto che un qualche JDK che potrebbe essere già stato incluso nella distribuzione Linux in uso.

Per confermare che il PATH sia correttamente impostato, si controlli quale compilatore Java e JVM siano installati.

which javac
which java

L'output dovrebbe far riferimento a javac e java nella directory $JAVA_HOME/bin.

La variabile d'ambiente CLASSPATH fa riferimento a tutti i JAR ed a tutte le directory che sono necessarie per la compilazione e l'esecuzione dei programmi Java.

Inizialmente suggerirei di aggiungere i seguente JAR al CLASSPATH. I JAR possono essere inseriti in file .jar o in file .zip.

Per esempio:

export CLASSPATH=$JAVA_HOME/lib/classes.zip
export CLASSPATH=$CLASSPATH:.

Verifica dell'installazione

Ora si è in grado si compilare ed eseguire una semplice applicazione. Creare il il seguente programma.

class HelloWorld {
  public static void main (String[] args) {
    System.out.println("Hello, World!");
  }
}

Compilare il programma con il compilatore Java.

javac HelloWorld.java

Se il compilatore produce errori si controlli la sintassi e si verifichino le variabili PATH e CLASSPATH.

Eseguire il programma con la JVM.

java HelloWorld

Se la JVM produce errori, si verifichino le variabili PATH e CLASSPATH.

Si dovrebbe ottenere il seguente output:

Hello, World!

Congratulazioni, si è installato, configurato e verificato un ambiente per il Java Developer Kit di IBM per Linux.

Maggiori informazioni

Per maggiori informazioni sul Java Developer Kit di IBM, si veda il sito IBM dedicato a Java all'indirizzo: http://www.ibm.com/java.

2.3 Kaffe

Generalità

Kaffe è un'implementazione open source della Java Virtual Machine e delle librerie di classi sviluppate con il metodo cleanroom. Al momento dell'estensione di questo documento, Kaffe "è per lo più conforme al JDK 1.1, ad eccezione di alcune parti mancanti." Ed "alcune parti sono già compatibili con JDK 1.2 (Java 2)" (dal sito Kaffe).

È probabile che Kaffe sia già contenuto nella distribuzione Linux in uso grazie alla sua licenza open source.

Download ed installazione

Prima di scaricarla da Kaffe, suggerirei inizialmente di provare la Kaffe che molto probabilmente è già disponile nella distribuzione Linux in uso.

In alternativa, Kaffe può essere ottenuto da http://www.kaffe.org.

Dalla home page di Kaffe, selezionare il rilascio più recente. Al momento della redazione di questo documento, il rilascio più recente è 1.0.5. Il numero di versione di Kaffe non ha nessun rapporto con i numeri di specifica di JDK.

Predisporre l'ambiente

Le variabi d'ambiente da impostare sono:

Per verificare che il PATH sia correttamente impostato, si controlli quale compilatore Java e JVM vengano usati.

which javac
which java

La variabile d'ambiente CLASSPATH fa riferimento a tutti i JAR ed a tutte le directory che sono necessarie per la compilazione e l'esecuzione dei programmi Java.

Suggerirei inizialmente di aggiungere al CLASSPATH i seguenti JAR. I JAR possono essere inseriti in file .jar o in file .zip.

Per esempio:

export CLASSPATH=/usr/local/share/kaffe/Klasses.zip
export CLASSPATH=$CLASSPATH:.

Verifica dell'installazione

Ora si è in grado di compilare ed eseguire una semplice applicazione. Creare il il seguente programma.

class HelloWorld {
  public static void main (String[] args) {
    System.out.println("Hello, World!");
  }
}

Compilare il programma con il compilatore Java.

javac HelloWorld.java

Se il compilatore produce errori si controlli la sintassi e si verifichino le variabili PATH e CLASSPATH.

Eseguire il programma con la JVM.

java HelloWorld

Se la JVM produce errori, si verifichino le variabili PATH e CLASSPATH.

Si dovrebbe ottenere il seguente output:

Hello, World!

Congratulazioni, si è installato, configurato e verificato un ambiente Kaffe per Linux.

Maggiori informazioni

Per maggiori informazioni su Kaffe, vedere il sito di Kaffe all'indirizzo http://www.kaffe.org.

2.4 Sun J2SE

Generalità

Sun Java 2, Standard Edition (J2SE) è il rilascio per la produzione di Sun della piattaforma Java 2 per il sistema operativo Linux. Al momento dell'estensione di questo documento, J2SE è allineato con JDK 1.2.2 per l'architettura Intel.

Download

J2SE può essere ottenuto da: http://developer.java.sun.com/developer/earlyAccess/j2sdk122.

È necessario registrarsi presso Sun ed accettare i termini della licenza in linea prima di scaricare.

Installazione

Suggerirei d'installare i file nella directory /usr/local. Dopo aver scaricato i file, eseguire:

mkdir /usr/local/sun
mv jdk1_2_2rc1-linux-i386.tar.gz /usr/local/sun

Si potranno allora aprire i pacchetti di distribuzione. Per farlo digitare:

tar zxvf jdk1_2_2rc1-linux-i386.tar.gz

Sotto la directory /usr/local/sun si dovrebbe vedere la directory jdk1.2.2.

L'esempio sopra fatto mostra la versione candidata al rilascio 1 del JDK 1.2.2 per l'architettura Intel. Si sostituiscano i nomi dei file in modo appropriato.

Predisporre l'ambiente

Le variabili d'ambiente da impostare sono:

La variabile d'ambiente JAVA_HOME fa riferimento alla directory di base dell'installazione del JDK. Impostare la variabile d'ambiente JAVA_HOME calla directory dove si è appena installata la versione di J2SE.

export JAVA_HOME=/usr/local/sun/jdk1.2.2

La directory $JAVA_HOME/bin contiene il compilatore Java (javac) e la Java Virtual Machine (java), come anche altri programmi necessari per lo sviluppo. Aggiungere $JAVA_HOME/bin al PATH.

export PATH=$JAVA_HOME/bin:$PATH

Notare che $JAVA_HOME/bin è stato aggiunto al principio del PATH in modo che venga utilizzato il JDK installato piuttosto che un qualche JDK che potrebbe essere già stato incluso nella distribuzione Linux in uso.

Per confermare che il PATH sia correttamente impostato si controlli quali compilatore Java e JVM risultano installati.

which javac
which java

L'output dovrebbe far riferimento a javac e java nella directory $JAVA_HOME/bin.

La variabile d'ambiente CLASSPATH fa riferimento a tutti i JAR ed a tutte le directory che sono necessarie per la compilazione e l'esecuzione dei programmi Java.

Per la JDK 1.2.2, inizialmente non è necessario aggiungere alcun JAR al CLASSPATH. I JAR possono essere pacchettizzati sia come file .jar che .zip.

export CLASSPATH=$CLASSPATH:.

Verifica dell'installazione

Si è ora in grado di compilare ed eseguire una semplice applicazione. Creare il seguente programma.

class HelloWorld {
  public static void main (String[] args) {
    System.out.println("Hello, World!");
  }
}

Compilare il programma con il compilatore Java.

javac HelloWorld.java

Se il compilatore produce errori si controlli la sintassi e si verifichino le variabili PATH e CLASSPATH.

Eseguire il programma con la JVM.

java HelloWorld

Se la JVM produce errori, si verifichino le variabili PATH e CLASSPATH.

Si dovrebbe ottenere il seguente output:

Hello, World!

Congratulazioni, si è installato, configurato e verificato un ambiente per Sun J2SE per Linux.

Maggiori informazioni

Per maggiori informazioni su Sun J2SE, vedere il sito Sun dedicato a Java all'indirizzo: http://java.sun.com. Ci sono eccellenti forum di discussione disponibili dove si possono trovare risposte a svariate domande.

3. Come predisporre il server Web

Ci sono parecchi server Web disponibili per Linux. Tra questi sono inclusi:

Se si volesse provare solo un Web Server, suggerirei di provare inizialmente Apache, principalmente perché è presente nella maggior parte delle maggiori distribuzioni Linux ed è probabile sia già installato, e forse funzionante, nel sistema in uso.

3.1 Apache

Generalità

Apache è il più popolare server HTTP in Internet. Originariamente era basato sull'httpd NCSA ed è stato poi completamente riscritto. Ha una licenza Open Source (dal sito web di Apache).

Download, installazione e predisposizione dell'ambiente

Piuttosto che scaricarlo da Apache, suggerirei inizialmente di provare l'Apache che molto probabilmente sarà presente nella distribuzione Linux.

In alternativa, Apache può essere ottenuto da http://www.apache.org.

Verifica dell'installazione

Per avere una conferma del fatto che Apache sia installato e funzionante su un computer, aprire il web browser, ed inserire lo URL: "http://127.0.0.1". (127.0.0.1 è l'indirizzo IP per il localhost.)

Si dovrebbe vedere una pagina web che abbia un effetto simile a "Funziona!"

Se non dovesse funzionare, si può avere conferma che Apache sia installato digitando il seguente comando in una distribuzione Linux basata sul RedHat Package Manager (RPM).

rpm -q | grep apache

Per lanciare Apache digitare:

cd /etc/rc.d/init.d
./httpd start

Nota: lo script httpd usato al momento del boot potrebbe essere in una diversa posizione su altre distribuzione Linux.

Per maggiori assistenza, suggerisco di leggere le FAQ Apache all'indirizzo: http://www.apache.org/docs/misc/FAQ.html.

3.2 IBM Domino

Da scrivere.

Vedere http://www.lotus.com/dominolinuxper maggiore informazioni.

3.3 IBM HTTP Server

Generalità

Il server HTTP di IBM è un reimpacchettamento di Apache fatto da IBM. Si consideri l'uso di IBM HTTP Server se si ha intenzione di lavorare con IBM WebSphere.

Al momento della redazione di questo documento, la più recente versione è la 1.3.6.1.

Download

L'IBM HTTP Server può essere ottenuto da http://www-4.ibm.com/software/webservers/httpservers/download.html.

Cliccare su il link di download e selezionare la cifratura SSL a 56-bit o a 128-bit.

Sarà necesssario registrarsi presso IBM, rispondere ad un sondaggio di marketing ed accettare la licenza prima di scaricarlo. L'IBM HTTP Server richiede la glibc nella versione 2.0 o 2.1. La glibc è la nuova libc di Linux. Se si è in possesso di una vecchia distribuzione che si basa sulla libc5, non si sarà in grado di usare l'IBM HTTP Server.

Su una distribuzione Linux basata su RedHat Package Manager (RPM), eseguire:

rpm -qa | grep libc

L'output sarà del tipo:

glibc-2.1.2-11
libc-5.3.12-31

Questo mostrerà quali versioni di libc5 e glibc sono installate nella distribuzione Linux in uso. Nel precedente esempio sono installate sia la glibc che la libc5. La glibc è nella versione 2.1, dunque si dovranno installare i file per la glibc2.1.

Considerando le loro piccole dimensioni, suggerirei di scaricare tutti i file tar per la versione glib presente sulla distribuzione di Linux in uso. Comunque, al minimo saranno necessari i file del server. Per RedHat 6.0 e distribuzioni derivate da Redhat 6.0 sarà anche necessario la redhat60only. Per distribuzioni basate su glibc2.0 sarà necessario pure il file libstdc.

Installazione

Si suggerisce d'installare i file nella directory /usr/local. Dopo aver scaricato i file, eseguire:

mkdir /usr/local/ibm
mv HTTPServer.linux.* /usr/local/ibm

Si può ora aprire il pacchetto di distribuzione del file o dei file.

tar xvf [filename].tar

Dove [filename] è il nome del file.

Sotto la directory /usr/local/ibm, si dovrebe vedere la directory IHS.

Usare il RedHat Package Manager (RPM) per installare i file rpm che il file tar produce. Se fosse necessario il file libstdc, sarà necessario installarlo per primo. Dopo di che installare il file RPM del server nel modo seguente:

cd IHS
rpm -i IBM_HTTP_Server-1.3.6-2.i386.rpm

L'esempio qui sopra mostra la versione 1.3.6 per l'architettura Intel. Si sostituisca il nome del file in modo appropriato.

Dopo l'installazione i file rpm possono essere cancellati potendoli ricreare facilmente partendo dai file tar.

>Predisporre l'ambiente

Le variabili d'ambiente da impostare sono:

L'IBM HTTP Server si installa in /opt/IBMHTTPServer. È necessario aggiungere la sua directory bin nel PATH.

export PATH=/opt/IBMHTTPServer/bin:$PATH

Notare che il percorso /opt/IBMHTTPServer/bin è stato aggiunto al principio del PATH così che verrà usato il server WEB installato piuttosto che un qualche server Web che potrebbe essere già stato incluso nella distribuzione Linux in uso.

Per avere una conferma che il PATH sia correttamente impostato, si verifichi quale Apache controller viene usato. Digitare:

which apachectl

L'output dovrebbe far riferimento a apachectl nella directory /opt/IBMHTTPServer/bin.

Nota: poiché l'IBM HTTP Server è basato su Apache, usa l'Apache controller per partire e fermarsi. Quando si ha sia l'IBM HTTP Server che Apache installati su un computer, va fatta particolare attenzione al PATH per essere sicuri di lavorare con il server corretto.

Può essere necessario modificare il file di configurazione di IBM HTTP Server. Il file di configurazione è installato in /opt/IBMHTTPServer/conf/httpd.conf. Le due voci più comuni da dover modificare sono il ServerName e il numero dalla porta d'ascolto (Listen port number). Ricercare le parole chiave "ServerName" e "Listen" nel file httpd.conf. Il ServerName dovrebbe essere impostato o con l'hostname o con l'indirizzo IP. Se il computer usa il DHCP per acquisire un indirizzo IP, l'hostname è ï�� la scelta migliore. Comunque, al fine di utilizzare l'hostname del computer in uso, l'hostname del computer e l'indirizzo IP devono essere registrati in modo appropriato nel DNS.

Inoltre se si volesse eseguire un altro server Web sarà necessario assegnare un'altra porta all'IBM HTTP Server in modo tale che si possano far funzionare entrambi i server Web simultaneamente se necessario.

Segue un esempio di valori nel httpd.conf.

ServerName 192.168.0.4
Listen 3000

Verifica dell'installazione

Per lanciare l'IBM HTTP Server, digitare come segue:

/opt/IBMHTTPServer/bin/apachectl start

Per verificare che l'IBM HTTP Server è installato e funzionante sul computer in uso, aprire il browser web e inserire lo URL: "http://192.168.0.4:3000" sostituendo il corretto indirizzo IP e numero di porta effettivamente inseriti nel httpd.conf.

Si dovrebbe vedere una pagina web il cui effetto sia "Welcome to the IBM HTTP Server". Congratulazioni, si è installato, configurato e verificato un ambiente per l'IBM HTTP Server per Linux.

Maggiori informazioni

Per maggiori informazioni, si suggerisce di guardare le pagine del supporto per l'IBM HTTP Server all'indirizzo: http://www-4.ibm.com/software/webservers/httpservers/support.html.

3.4 Jetty HTTP Server e contenitore Servlet

Generalità

Jetty è un HTTP Servlet Server open source scritto in Java al 100%. E\: sia un server HTTP/1.1 completo che un contenitore di Servlet. È stato progettato per essere leggero, molto performante, integrabile, estensibile e flessibile, facendone una piattaforma ideale per servire richieste HTTP dinamiche da qualsiasi applicazione Java.

Jetty può essere usato come server HTTP e contenitore di servlet indipendente ovvero può essere usato integrato in un'altra applicazione Java (ed esempio il contenitore di EJB JBoss stà usando Jetty come sua soluzione preferita per server e contenitore).

L'unione di server e di contenitore di servlet consente di eseguire entrambe queste funzioni in un singolo processo unix. Anche l'installazione e la configurazione è più semplice perché si tratta di una singola applicazione.

Download

Il Jetty HTTP Server e Servlet container pï��ò essere scaricato via:

http://jetty.mortbay.org.

Jetty è distribuito sotto la Artistic License, i sorgenti completi sono inclusi e può essere usata e distribuita commercialmente.

Installazione

Il pacchetto è distribuito come un file tar compresso con gzip, che può essere spacchettato con:

gunzip < Jetty-x.x.x.tgz | tar xf - 

Che creerà una directory Jetty-x.x.x dove x.x.x è il numero della versione.

Per eseguire il server demo:

export JETTY_HOME=<jetty install directory>
export JAVA_HOME=<JRE install directory>
$JETTY_HOME/bin/jetty.sh run 
Quindi per vedere il demo ed il tutorial di Jetty far puntare il browser a http://localhost:8080.

Jetty può essere installato ed eseguito via JMX o come parte della distribuzione di JBoss. Vedere http://jetty.mortbay.org o il file README.TXT per maggiori dettagli.

4. Come predisporre il supporto per le Servlet Java

Ci sono parecchi plug-in per server Web e e per Application Server disponibili per Linux che forniscono il supporto per le servlet Java. Tra questi sono inclusi:

4.1 Allaire JRun

Da scrivere.

Vedere http://www.allaire.com/products/jrun/per maggiori informazioni.

4.2 Apache Tomcat

Generalità

JServ è stato sostituito con Tomcat dal progetto Apache Jakarta: http://jakarta.apache.org/. Questa sezione è ancora scritta per JServ e ha necessità di essere aggiornata.

Apache JServ è un motore servlet al 100% Java, completamente conforme alle specifiche Java Servlet 2.0. Apache JServ è parte del progetto Java Apache (dal sito web Apache Java Project).

Download

Apache JServ può essere ottenuto da http://java.apache.org/jserv/index.html.

Dalla home page del progetto Apache JServ, seguire il collegamento Download Apache JServ.

Attualmente sono disponibili distribuzioni in formato RPM per RedHat Linux. Per altre distribuzioni Linux bisogna fare il build dei sorgenti. Il seguente esempio descrive come installare l'RPM per RedHat 6x.

Al momento dell'estensione di questo documento, la versione corrente è la 1.1b3.

Installazione

Suggerirei di installare i file nella directory /usr/local. Dopo aver scaricato i file eseguire:

mkdir /usr/local/apachejserv  
mv ApacheJServ*.rpm /usr/local/apachejserv 

Per la RedHat e le distribuzioni derivate dalla RedHat usare il RedHat Package Manager (RPM)per installare i file rpm con:

rpm -i ApacheJServ-1.1-b2_RH6x.i386.rpm  

L'esempio di cui sopra mostra la versione 1.1-b2 per la RedHat 6x su architettura Intel.

Predisporre l'ambiente

È necessario fermare Apache, impostare le variabili d'ambiente di Java, e riavviare Apache per registrare Apache JServ.

Per fermare Apache digitare:

cd /etc/rc.d/init.d
./httpd stop

Nota: lo script httpd usato al momento del boot può essere in una posizione differente su altre distribuzioni Linux.

Per predisporre l'ambiente Java, vedere la sezione Come installare il JDK di questo documento specifica per il JDK effettivamente in uso. È necessario impostare molte proprietà nel file jserv.properties installato in /etc/httpd/conf/jserv. Nello specifico, cercare:

Per riavviare Apache digitare:

cd /etc/rc.d/init.d
./httpd start

Verifica dell'installazione

Per verificare che Apache JServ sia installato e funzionante sul computer in uso, aprire il browser, e inserire lo URL: "http://127.0.0.1/servlet/IsItWorking" sostituendo l'indirizzo IP con quello corretto qualora si stesse navigando da un'altra macchina.

Si dovrebbe vedere un'altra pagina web che abbia l'effetto di "Yes, It's Working!". Contratulazioni, si è installato, predisposto e verificato un ambiente per Apache JServ per Linux.

Per maggiore assistenza, suggerirei di vedere il sito web di Apache JServ all'indirizzo:

http://java.apache.org/jserv/index.html.

Ora, per compilare ed eseguire le proprie servlet inserire il seguente programma Java che fa uso di servlet.

import java.io.*;  
import javax.servlet.*; 
import javax.servlet.http.*; 
 
public class HelloWorldServlet extends HttpServlet { 
  public void service (HttpServletRequest request, 
    HttpServletResponse response) throws ServletException, IOException { 
  } 
}

Maggiori informazioni

Per maggiori informazioni, suggerirei di guardare il sito web di Java Apache Project all'indirizzo http://java.apache.org/.

4.3 BEA WebLogic

Si veda BEA WegLogic di seguito.

4.4 Enhydra

Da scrivere.

Vedere http://www.enhydra.orgper maggiori informazioni.

4.5 IBM WebSphere

Da scrivere.

Vedere http://www-4.ibm.com/software/webservers/appserv/linux.html per maggiori informazioni.

4.6 Locomotive

Da scrivere.

Vedere http://www.locomotive.org/ per maggiori informazioni.

4.7 Jetty

Il server HTTP Jetty è un server HTTP ed un contenitore di servlet combinati. L'installazione del server HTTP (vedere sopra) fornisce il supporto alle servlet. Maggiori informazioni possono essere ottenute attraverso il server demo e il tutorial installato con il server HTTP.

5. Come predisporre il supporto delle Java Server Pages (JSP)

Da scrivere.

5.1 Apache Jakarta

Da scrivere.

Vedere http://jakarta.apache.com/ per maggiori informazioni.

5.2 Caucho Resin

Da scrivere.

Vedere http://www.caucho.com/ per maggiori informazioni.

5.3 Jetty

Il Jetty HTTP server viene fornito con il motore JSP Jasper. L'installazione del server HTTP (vedere 3.4 sopra) fornisce il supporto a JSP. Maggiori informazioni possono essere ottenute attraverso il server demo e il tutorial installato con il server HTTP.

6. Come predisporre il supporto per JDBC

Ci sono diversi database che funzionano su Linux che supportano anche un'interfaccia JDBC. Tra questi sono inclusi:

Se si volesse provare solo un DBMS, suggerirei inizialmente di provare PostgreSQL, principalmente perché è presente nella maggior parte delle maggiori distribuzioni Linux ed è probabile che sia già installato, e forse funzionante, nel sistema in uso.

6.1 IBM DB2

Da scrivere.

Vedere http://www-4.ibm.com/software/data/db2/linux/ per maggiori informazioni.

6.2 MiniSQL

Da scrivere.

Vedere http://www.hughes.com.au/ per maggiori informazioni.

6.3 MySQL

Da scrivere.

See http://www.mysql.org/ per maggiori informazioni.

6.4 Oracle

Da scrivere.

Vedere http://platforms.oracle.com/linux/

6.5 PostgreSQL

Generalità

PostgreSQL è un sofisticato DBMS relazionale ad oggetti, ammette quasi tutti i costrutti SQL, inclusi subselect, transazioni, tipi e funzioni definite dall'utente. È il più avanzato database open-source disponibile. È anche disponibile il supporto commerciale di PostgreSQL, Inc. La versione attuale è la 6.5.3 ed è disponibile da uno qualsiasi dei tanti siti mirror o su CD (dal sito web di PostgreSQL).

PostgreSQL potrebbe essere già contenuto nella distribuzione Linux in uso per via della sua licenza open source.

Download ed installazione

Piuttosto che scaricare da PostgreSQL, suggerirei inizialmente di provare il PostgreSQL che molto probabilmente è fornito con la distribuzione Linux in uso.

In alternativa, PostgreSQL può essere ottenuto da http://www.postgresql.org.

Per verificare che PostgreSQL sia installato sul computer in uso digitare:

rpm -qa | grep postgresql

o

which postmaster
which psql

Per usare Java con PostgreSQL \ necessario che i pacchetti postgresql, postgresql-server e postgresql-java siano installati.

Accertarsi che PostgreSQL sia in esecuzione. Digitare:

ps -f -u postgres

Si dovrebbe vedere postmaster, il demone di PostgreSQL, attivo.

Se postmaster non fosse attivo, ci sarà probabilmente uno script Sys V Init che può essere usato per avviarlo. In molte distribuzioni è localizzato in /etc/rc.d/init.d. Per lanciare PostgreSQL, digitare:

cd /etc/rc.d/init.d
./postgresql start

Si può usare il comando "ps" di cui sopra per avere una conferma che PostgreSQL è in esecuzione.

Nota: per usare il JDBC, PostgreSQL necessita di essere lanciato con il parametro '-i' che indica l'uso di connessioni TCP/IP piuttosto che solamente socket di dominio UNIX. Verificare che postmaster sia stato lanciato con il parametro '-i'.

Creare un database di test digitando:

su - postgres
createdb javatest

Non si dovrebbe vedere alcun messaggio di errore.

Creare una tabella di test con una riga di test. Prima, accedere allo strumento interattivo PostgreSQL e collegarsi al database javatest appena creato digitando (come utente postgres):

psql javatest

Si dovrebbe vedere confermato il fatto di essere connessi al database: javatest.

Poi, creare la tabella di test digitando (all'interno di psql):

create table test (col1 varchar(255));

Si dovrebbe vedere il messaggio di conferma del comando "CREATE".

Quindi, inserire una riga digitando (all'interno di psql):

insert into test (col1) values ('Hello, from PostgreSQL!');

Si dovrebbe vedere il messaggio di conferma del comando "INSERT".

Finalmente, verificare che la riga sia presente digitando (all'interno di psql):

select col1 from test;  

Si dovrebbe vedere la riga appena creata.

Si può uscire da psql digitando "\q".

Per maggiore assistenza nel lavoro con PostgreSQL, suggerirei di leggere a fondo il documento Database-SQL-RDBMS HOW-TO per Linux (PostgreSQL Object Relational Database System) all'indirizzo: http://metalab.unc.edu/mdw/HOWTO/PostgreSQL-HOWTO.html.

È necessario aggiungere il JAR appropriato nel CLASSPATH. I JAR di PostgreSQL vengono forniti con il pacchetto postgresql-jdbc.

export CLASSPATH=$CLASSPATH:/usr/lib/pgsql/jdbc6.5-1.2.jar

Si potrebbe aver bisogno di sostituire il percorso a seconda di dove è stato installato PostgreSQL sul sistema in uso.

Verifica dell'installazione

Si è ora in grado di compilare ed eseguire una semplice applicazione JDBC che usi PostgreSQL. Creare il seguente programma.

import java.sql.*;

class PostgreSQLTest {
  public static void main (String[] args) {
    try {
      Driver driver = (Driver)
        Class.forName("postgresql.Driver").newInstance();
      DriverManager.registerDriver(driver);

      String     url = "jdbc:postgresql:javatest"; 
      Connection con = DriverManager.getConnection(url, "postgres", ""); 
      Statement  stm = con.createStatement(); 
 
      stm.setQueryTimeout(10); 
      ResultSet  rs  = stm.executeQuery("select col1 from test"); 
 
      rs.next(); 
 
      System.out.println(rs.getString(1)); 
 
    } catch (SQLException e) { 
 
      System.out.println("Exception!"); 
      System.out.println(e.toString()); 
  } 
} 

Compilare il programma con il compilatore Java.

javac PostgreSQLTest.java  

Se il compilatore dovesse produrre errori, controllare la sintassi e verificare il PATH e la CLASSPATH.

Eseguire il programma con la JVM.

java PostgreSQLTest  

Se la JVM dovesse produrre errori, verificare il PATH e la CLASSPATH.

Si dovrebbe vedere l'output:

Hello, from PostgreSQL!  

Congratulazioni, si è installato, configurato e provato un ambiente per l'interfaccia JDBC verso PostgreSQL.

Maggiori informazioni

Per maggiori informazioni, suggerirei di esaminare a fondo il sito web di PostgreSQL all'indirizzo

http://www.postgresql.org/.

6.6 Sybase

Generalità

Sybase Adaptive Server Enterprise è un RDBMS commerciale che è disponibile per il sistema operativo Linux. Per quanto Sybase abbia recentemente rilasciato la versione 12.0, la versione disponibile per Linux è la 11.9.2.

Secondo il sito web di Sybase, "Con il port di ASE su Linux, Sybase ha dato alla comunità di sviluppo di Linux il primo motore di database ad alta scalabilità ad alte prestazioni per la piattaforma. Il pacchetto include le caratteristiche standard dell'Adaptive Server Enterprise e di tutti i componenti di connettività relativi. La versione 11.9.2 è offerta per sviluppo LIBERO".

Download

Sybase ASE può essere ottenuto da http://www.sybase.com/products/databaseservers/linux/linux1192_reg.html.

Per poter effettuare il download è necessario registrarsi presso il sito web di Sybase ed accettare i termini della licenza online.

Il driver JDBC di Sybase JDBC può essere ottenuto da http://www.sybase.com/products/internet/jconnect/.

Selezionare download jConnect 4.2/5.2.

Se si ha accesso ad un server Sybase in rete, è sufficiente scaricare ed installare il solo driver JDBC.

Installazione

L'installazione di Sybase va oltre lo scopo di questo HOWTO. Questo HOWTO assume che Sybase sia stato installato e configurato correttamente e che si acceda a Sybase utilizzando isql.

Accedere ad isql come sa e creare un utente di test ed un database di test digitando:

create database javatest  
go 
sp_addlogin javatest, javatest, javatest 
go 
use javatest 
go 
sp_dbowner javatest 
go 

Non si dovrebbero vedere errori.

Creare una tabella di test con una riga di test. Prima, accedere ad isql con l'utente di test javatest e digitare:

create table test (col1 varchar(255))  
go 

Non si dovrebbe vedere alcun messaggio di errore.

Poi, inserire una riga digitando:

insert into test (col1) values ('Hello, from Sybase!')  
go 

Non si dovrebbe vedere alcun messaggio di errore.

Alla fine, verificare che la riga sia presente digitando:

select col1 from test  
go 

Si dovrebbe vedere la riga appena creata.

Si può uscire da isql digitando "exit".

Per maggiori informazioni su come lavorare con Sybase, esaminare la documentazione che può essere scaricata con Sybase.

Potrebbe essere necessario aggiungere gli appropriati JAR al CLASSPATH.

export CLASSPATH=$CLASSPATH:/usr/local/sybase/jConnect-5_2/classes/jconn2.jar  

Potrebbe essere necessario sostituire il percorso in base a dove si è installato jConnect.

Verifica dell'installazione

Si è ora in grado di compilare ed eseguire una semplice applicazione JDBC che usi PostgreSQL. Creare il seguente programma.

import java.sql.*;  
 
class SybaseTest { 
  public static void main (String[] args) { 
    try { 
      Driver driver = (Driver) 
        Class.forName("com.sybase.jdbc2.jdbc.SybDriver").newInstance(); 
      DriverManager.registerDriver(driver); 
 
      String     host = "127.0.0.1"; 
      String     port = "4100"; 
 
      String     url = "jdbc:sybase:Tds:" + host + ":" + port; 
      Connection con = DriverManager.getConnection(url, "javatest", "javatest"); 
      Statement  stm = con.createStatement(); 
 
      stm.setQueryTimeout(10); 
      ResultSet  rs  = stm.executeQuery("select col1 from test"); 
 
      rs.next(); 
 
      System.out.println(rs.getString(1)); 
 
    } catch (SQLException e) { 
 
      System.out.println("Exception!"); 
      System.out.println(e.toString()); 
  } 
} 

Sarà necessario sostituire l'host e il numero della porta del server Sybase in modo appropriato. Vedere il contenuto di $SYBASE/interfaces e $DSQUERY per quali valori usare per l'host ed il numero di porta.

Compilare il programma con il compilatore Java.

javac SybaseTest.java  

Se il compilatore dovesse produrre errori, controllare la sintassi e verificare il PATH e la CLASSPATH.

Eseguire il programma con la JVM.

java SybaseTest  

Se la JVM dovesse produrre errori, verificare il PATH e la CLASSPATH.

Si dovrebbe vedere il seguente output:

Hello, from Sybase!  

Congratulazione, si è installato, configurato e provato un ambiente per l'interfaccia JDBC verso Sybase.

Maggiori informazioni

Per maggiori informazioni, suggerirei di guardare a fondo il sito web dedicato a jConnect di Sybase all'indirizzo http://www.sybase.com/products/internet/jconnect/.

7. Come predisporre il supporto degli Enterprise Java Bean (EJB)

Da scrivere.

7.1 BEA WebLogic

Da scrivere.

Vedere http://www.beasys.com/linux/ per maggiori informazioni.

7.2 EJBoss

Generalità

EJBoss è stato rinominato JBoss ed è molto progredito con rilasci stabili conformi a J2EE all'indirizzo http://www.jboss.org/.

Questa sezione è stata scritta quando ancora era EJBoss 0.95 e richiede un aggiornamento.

Download

JBoss può essere scaricato dal sito web di JBoss all'indirizzo http://www.jboss.org/.

Installazione

Suggerirei di installare i file nella directory /usr/local. Dopo il download eseguire:

mkdir /usr/local/ejboss 
mv ejboss* /usr/local/ejboss

Spacchettare il file:

jar xvf ejboss095_jdk122.jar

Si dovrebbero vedere diversi file e directory creati sotto /usr/local/ejboss.

L'esempio di cui sopra mostra EJBoss 0.95 per il JDK 1.2.2. Sostituire i nomi dei file in modo appropriato.

Predisposizione dell'ambiente

Le variabili d'ambiente da impostare sono:

La variabile d'ambiente CLASSPATH fa riferimento a tutti i JAR ed a tutte le directory che sono necessari per compilare ed eseguire i programmi Java.

Includere i JAR di EJBoss e la directory beans/generated nel CLASSPATH.

export CLASSPATH=/usr/local/ejboss/lib/ejboss095_jdk122.jar:/usr/local/ejboss/beans/generated:$CLASSPATH

Verifica dell'installazione

Si � ora in grado di compilare ed eseguire una semplice applicazione EJB. Creare i tre seguenti file sorgenti per il server.

Primo, l'interfaccia di business.

// EJBTest.java

import javax.ejb.*;
import java.rmi.RemoteException;

public
 interface EJBTest extends EJBObject { 
  public String greet() throws
 RemoteException;

}

Secondo, la home interface.

// EJBTestHome.java

import javax.ejb.*;
import java.rmi.RemoteException;

public
 interface EJBTestHome extends EJBHome {

  public EJBTest create() throws
 
   CreateException, RemoteException;
}

Terzo, la classe che implementa il bean.

// EJBTestBean.java

import javax.ejb.*;
import java.rmi.RemoteException;

public
 interface EJBTestBean implements SessionBean {

  private SessionContext
 mContext = null;

  public void ejbPassivate() {
    System.out.println("EJBTestBean
 passivated.");
}

  public void ejbActivate() {
    System.out.println("EJBTestBean
 activated.");
}

  public void ejbCreate() {
    System.out.println("EJBTestBean
 created.");
}

  public void ejbRemove() {
    System.out.println("EJBTestBean
 removed.");
}

  public void setSessionContext() {
    System.out.println("EJBTestBean
 context set.");
    mContext = context;
}

  public String greet()
 {
    return "Hello, I'm an EJB!";
}

}

Compilare i file sorgenti per il server con il compilatore Java:

javac EJBTest*.java

Se il compilatore dovesse produrre errori, verificare la sintassi e verificare il PATH ed il CLASSPATH.

Ora che si è scritto e compilato con successo i file sorgenti per il server, vanno rilasciati i bean su EJBoss. La distribuzione di un bean su EJBoss richiede parecchi passi che devono essere eseguiti esattamente.

Primo, creare il file ejb-jar.xml.

<?xml version="1.0" encoding="Cp1252"?>
 
<ejb-jar ID="">
     <description></description>
     <display-name></display-name>
     <small-icon></small-icon>
     <large-icon></large-icon>
     <ejb-client-jar></ejb-client-jar>
     <enterprise-beans>
       <session>
         <description>Nextgen bean</description>
         <ejb-name>nextgen.EJBTest</ejb-name>
         <home>EJBTestHome</home>
         <remote>EJBTest</remote>
         <ejb-class>EJBTestBean</ejb-class>
         <session-type>Stateful</session-type>
         <transaction-type>Bean</transaction-type>
         <env-entry>
           <description></description>
           <env-entry-name></env-entry-name>
           <env-entry-type>java.lang.String</env-entry-type>
           <env-entry-value></env-entry-value>
         </env-entry>
         <resource-ref>
           <description></description>
           <res-ref-name></res-ref-name>
           <res-type></res-type>
           <res-auth>Container</res-auth>
         </resource-ref>
       </session>
     </enterprise-beans>
     <assembly-descriptor />
   </ejb-jar>

Il file di cui sopra, che deve essere chiamato ejb-jar.xml, identifica i nomi delle classi e dell'interfaccia che si sono appena create oltre al nome dell'oggetto.

Secondo, all'interno della directory dei file delle tre classi appena create, si crei una directory META-INF.

mkdir META-INF
mv ejb-jar.xml META-INF

Terzo, si impacchettino tutti e quattro i file in un jar.

jar cvf EJBTest.jar EJBTest*.class META-INF/ejb-jar.xml

Si deve fare attenzione che venga aggiunto anche il manifesto oltre che i tre file delle classi e il file XML che descrive la distribuzione.

Quarto, posizionare il JAR appena creato nella directory dei beans in EJBoss.

mv EJBTest.jar /usr/local/ejboss/beans

Quinto, spostare i file delle classi creati nella directory beans/generated di EJBoss.

mv EJBTest*.class /usr/local/ejboss/beans/generated

(questo quinto passo è ridondante a causa di un baco in EJBoss 0.95 )

Si è ora in grado di attivare il server EJBoss.

cd /usr/local/ejboss
sh server.sh

Si dovrebbe poter vedere i file proxy compilati automaticamente e la conferma che l'EJB è stato distribuito.

Si è ora in grado di scrivere, compilare e provare una sempice applicazione client.

7.3 Bullsoft JOnAS EJB

Da scrivere.

Vedere http://www.bullsoft.com/ejb/per maggiori informazioni.