[email protected]
originale di Gary Meyer [email protected]
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.
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.
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
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
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".
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]).
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/.
Si prega di sottoporre tutte le aggiunte e le correzioni all'autore, Gary Meyer, presso ( [email protected]).
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.
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".
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.
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.
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:.
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.
Per maggiori informazioni sul JDK Blackdown, si veda il sito di Blackdown all'indirizzo http://www.blackdown.org. È disponibile un'eccellente FAQ.
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.
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.
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.
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:.
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.
Per maggiori informazioni sul Java Developer Kit di IBM, si veda il sito IBM dedicato a Java all'indirizzo: http://www.ibm.com/java.
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.
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.
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:.
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.
Per maggiori informazioni su Kaffe, vedere il sito di Kaffe all'indirizzo http://www.kaffe.org.
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.
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.
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.
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:.
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.
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.
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.
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).
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.
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.
Da scrivere.
Vedere http://www.lotus.com/dominolinuxper maggiore informazioni.
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.
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.
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.
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
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.
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.
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.
Il Jetty HTTP Server e Servlet container pï��ò essere scaricato via:
Jetty è distribuito sotto la Artistic License, i sorgenti completi sono inclusi e può essere usata e distribuita commercialmente.
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 runQuindi 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.
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:
Da scrivere.
Vedere http://www.allaire.com/products/jrun/per maggiori informazioni.
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).
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.
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.
È 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
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 { } }
Per maggiori informazioni, suggerirei di guardare il sito web di Java Apache Project all'indirizzo http://java.apache.org/.
Si veda BEA WegLogic di seguito.
Da scrivere.
Vedere http://www.enhydra.orgper maggiori informazioni.
Da scrivere.
Vedere http://www-4.ibm.com/software/webservers/appserv/linux.html per maggiori informazioni.
Da scrivere.
Vedere http://www.locomotive.org/ per maggiori informazioni.
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.
Da scrivere.
Da scrivere.
Vedere http://jakarta.apache.com/ per maggiori informazioni.
Da scrivere.
Vedere http://www.caucho.com/ per maggiori informazioni.
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.
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.
Da scrivere.
Vedere http://www-4.ibm.com/software/data/db2/linux/ per maggiori informazioni.
Da scrivere.
Vedere http://www.hughes.com.au/ per maggiori informazioni.
Da scrivere.
See http://www.mysql.org/ per maggiori informazioni.
Da scrivere.
Vedere http://platforms.oracle.com/linux/
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.
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.
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.
Per maggiori informazioni, suggerirei di esaminare a fondo il sito web di PostgreSQL all'indirizzo
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".
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.
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.
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.
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/.
Da scrivere.
Da scrivere.
Vedere http://www.beasys.com/linux/ per maggiori informazioni.
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.
JBoss può essere scaricato dal sito web di JBoss all'indirizzo http://www.jboss.org/.
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.
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
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.
Da scrivere.
Vedere http://www.bullsoft.com/ejb/per maggiori informazioni.