<!-- LinuxDoc file was created by LyX 0.12 (C) 1995-1998 by <root> Tue Jan  4 13:33:08 2000
 -->
<!-- Export filter v0.6 by Pascal Andre/Bernhard Iselborn-->

<!doctype linuxdoc system>

<article>

<title>Enterprise Java per Linux HOWTO
<author>Greg Wilkins <tt>gregw@mortbay.org<label id="sec: author"></tt> originale di Gary Meyer <tt>gary@meyer.net</tt>
<date>v0.2, 2001-11-07
<abstract>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). 
<toc>
<sect>Introduzione<label id="sec: intro">
<p>

<sect1>Generalit&agrave;
<p>
La stesura di questo documento ha avuto inizio il gennaio 1999 da parte di Gary Meyer (
<htmlurl url="mailto:gary@meyer.net" name="gary@meyer.net">) dopo molte settimane 
di installazioni di vari prodotti Enterprise Java open source e proprietari  
per Linux. &Egrave; definito "Enterprise Java" ci&ograve; che usa le API Java Enterprise.
<p>
Alcuni aggiornamenti sono stati aggiunti da Greg Wilkins 
(<htmlurl url="mailto:gregw@mortbay.org" name="gregw@mortbay.org">) nel novembre
2001 ci&ograve; nondimeno parti del documento sono ancora obsolete.

<sect1>Pubblico
<p>
Questo HOWTO &egrave; 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.

<sect1>Nuove versioni 
<p>
La versione pi&ugrave; recente di questo documento pu&ograve; essere trovata sul sito del Linux Documentation
Project:
<htmlurl url="http://linuxdoc.org/HOWTO/Enterprise-Java-for-Linux-HOWTO.html" name="http://linuxdoc.org/HOWTO/Enterprise-Java-for-Linux-HOWTO.html">
 

<sect1>Copyright e licenza
<p>
Questo documento &egrave; un Copyright (c) 1999-2001 di Gary Meyer e Greg
Wilkins. La copia, distribuzione e/o modifica di questo documento &egrave; 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 &egrave; disponibile all'indirizzo
<htmlurl url="http://www.gnu.org/copyleft/fdl.html" name="http://www.gnu.org/copyleft/fdl.html">

<sect1>Liberatoria
<p>
I suggerimenti contenuti in questo documento sono stati forniti per aiutare ad avere il pi&ugrave; 
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&agrave;
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&agrave;, la disponibilit&agrave;,
la gestibilit&agrave; ed altri simili aspetti del software che sono spesso associati
alla parola "enterprise".

<sect1>Future potenziali sezioni 
<p>

Questo HOWTO &egrave; focalizzato sugli aspetti pi&ugrave; popolari dell'Enterprise Java. Potrebbero 
essere aggiunte a questo HOWTO le seguenti sezioni. 
<itemize>
<item>Ambienti di sviluppo integrato (IDE) che consentano l'uso dell'Enterprise Java per Linux
<item>Supporto per Java Naming and Directory Interface (JNDI)
<item>Supporto per Java Mail API (JMAPI)
<item>Supporto per Java Transaction Service (JTS) 
<item>Supporto per Java Interface Definition Language (JIDL)
<item>Supporto per Java Messaging Service (JMS)
<item>Supporto per Common Object Request Broker Architecture (CORBA)
</itemize>

Interessati a scrivere una sezione? 

Contattare l'autore, Gary Meyer, presso (
<htmlurl url="mailto:gary@meyer.net" name="gary@meyer.net">). 

<sect1>Altre risorse
<p>
Il sito web di App-Serv Center all'indirizzo
<htmlurl url="http://www.app-serv.com/" name="http://www.app-serv.com/">.

Java Enterprise in a Nutshell di David Flanagan ed altri all'indirizzo 
<htmlurl url="http://www.oreilly.com/catalog/jentnut/" name="http://www.oreilly.com/catalog/jentnut/">.

<sect1>Feedback 
<p>

Si prega di sottoporre tutte le aggiunte e le correzioni all'autore, Gary Meyer,
presso (<htmlurl url="mailto:gary@meyer.net" name="gary@meyer.net">). 

<sect>Come predisporre il Java Development Kit <label id="sec: jdk">
<p>

Ci sono molti Java Development Kit disponibili per Linux.  Questi includono:
 
<itemize>
<item><ref id="sec: blackdown" name="Blackdown JDK">
<item><ref id="sec: ibmjdk" name="IBM Java Developer Kit ">
<item><ref id="sec: j2se" name="Sun J2SE ">
<item><ref id="sec: kaffe" name="Kaffe ">
</itemize>

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 &egrave; interessati ad utilizzare una implementazione open source,
sar&agrave; necessario ricorrere a Kaffe.

<sect1>Blackdown JDK <label id="sec: blackdown">
<p>
<sect2>Generalit&agrave; 
<p>

Blackdown JDK &egrave; un port del Sun JDK su Linux.  Al tempo della scrittura di	
questo documento, il Blackdown JDK &egrave; 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&agrave; della piattaforma Java 2, Standard
Edition (J2SE) su Linux. Questo rilascio Sun ha un impatto significativo su Blackdown
perch&eacute; Blackdown &egrave; un port. In un comunicato stampa, Sun ha affermato, &quot;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 &egrave; 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 &egrave; stato determinante per il successo di 
questo rilascio&quot;. 

Inoltre, il comunicato stampa della Sun prosegue con, &quot;Blackdown.org continua
ad essere una preziosa fonte di tecnologia Java per Linux, compresi i rilasci di JDK 1.1.x&quot;.
 
<sect2>Download 
<p>

Il JDK Blackdown pu&ograve; essere ottenuto da 
<htmlurl url="http://www.blackdown.org" name="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&ugrave; recente,
che al momento della stesura di questo documento &egrave; la JDK 1.2.2. 

Selezionare l'architettura della macchina su cui si st&agrave; 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&ugrave; recente o la versione finale 
se disponibile.  

Per il JDK Blackdown, &egrave 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: 
<itemize>
<item><em>jdk</em> - Il Java Development Kit contiene tutto il necessario per compilare,
eseguire, e fare il debug di Java. Non contiene convertitori per i caratteri internazionali.
 
<item><em>jre</em> - Il Java Runtime Environment, con inclusi i convertitori per i caratteri internazionali.
 
<item><em>rt</em> -  Un Java Runtime Environment minimo che non include i convertitori per 
caratteri internazionali. 

<item><em>i18n</em> - Le mappe dei font per l'internazionalizzazione ed un JAR contenente i
convertitori di caratteri internazionali. 

<item><em>native</em> - Ulteriori binari che forniscono supporto nativo per i thread. 
</itemize>

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

Quando si scaricano i file di Blackdown, si pu&ograve; scegliere tra libc5
e glibc e potenzialmente anche una specifica versione di glibc. Tra le scelte di libc
sono incluse:
<itemize>
<item>libc5 - La pi&ugrave; vecchia, ed ancora la pi&ugrave; comune, libc di Linux &egrave; la libc5. 
<item>glibc - La nuova libc di Linux. 
</itemize>

Se si sta usando una distribuzione pi&ugrave; recente di Linux, si avr&agrave; con molta probabilit&agrave;
glibc. Io suggerisco di provare in prima istanza glibc.

<sect2>Installazione 
<p>
Suggerirei d'installare i file nella directory /usr/local. Dopo aver scaricato
i file, eseguire:
<verb>mkdir /usr/local/blackdown
mv jdk* /usr/local/blackdown
</verb>

Se si &egrave; scaricato il file in formato tarball, eseguire: 
<verb>tar zxvf &lsqb;filename&rsqb;.tar.gz
</verb>

Dove &lsqb;filename&rsqb; &egrave; 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&agrave; aprire ogni file del pacchetto di distribuzione
nella maniera sopra indicata. 
<sect2>Predisporre l'ambiente 
<p>

Le variabi d'ambiente da impostare sono: 
<itemize>
<item>JAVA_HOME
<item>PATH
<item>CLASSPATH
</itemize>

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 &egrave; stata appena installata la versione del JDK Blackdown. 
<verb>export JAVA_HOME=/usr/local/blackdown/jdk1.2.2
</verb>

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. 
<verb>export PATH=&dollar;JAVA_HOME/bin:&dollar;PATH
</verb>

Notare che $JAVA_HOME/bin &egrave; stato aggiunto al principio del PATH in modo che
venga utilizzato il JDK installato piuttosto che un qualche JDK che potrebbe essere gi&agrave;
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.
<verb>which javac
which java
</verb>

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 &egrave; necessario inizialmente aggiungere alcun JAR al proprio CLASSPATH.
I JAR possono essere inseriti in file .jar o in file .zip.
<verb>export CLASSPATH=&dollar;CLASSPATH:.
</verb>
<sect2>Verifica dell'installazione
<p>

Si &egrave; ora in grado di compilare ed eseguire una semplice applicazione. Creare il seguente
programma. 
<verb>class HelloWorld &lcub;
  public static void main (String&lsqb;&rsqb; args) &lcub;
    System.out.println(&dquot;Hello, World!&dquot;);
  &rcub;
&rcub;
</verb>

Compilare il programma con il compilatore Java. 
<verb>javac HelloWorld.java
</verb>

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

Eseguire il programma con la JVM. 
<verb>java HelloWorld
</verb>

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

Si dovrebbe ottenere il seguente output:
<verb>Hello, World!
</verb>

Congratulazioni, si &egrave; installato, configurato e verificato un ambiente
per il JDK Blackdown per Linux. 
<sect2>Maggiori informazioni
<p>

Per maggiori informazioni sul JDK Blackdown, si veda il sito di Blackdown all'indirizzo
 <htmlurl url="http://www.blackdown.org" name="http://www.blackdown.org">. 
&Egrave; disponibile un'eccellente FAQ.  
<sect1>IBM Java Developer Kit <label id="sec: ibmjdk">
<p>
<sect2>Generalit&agrave; 
<p>

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

Al tempo della redazione di questo documento, Il Java Developer Kit IBM &egrave; allineato con
il JDK 1.1.8 ed &egrave; disponibile solo per la piattaforma Intel. 
<sect2>Download 
<p>

Il Java Developer Kit di IBM pu&ograve; essere ottenuto da
<htmlurl url="http://www.ibm.com/java/jdk/118/linux" name="http://www.ibm.com/java/jdk/118/linux">.
 
Per scaricarlo &egrave; necessario registrarsi presso il sito IBM e
acconsentire alla licenza in linea. 

I file disponibili includono:
<itemize>
<item><em>ibm-jdk-l118-linux-x86.tgz</em> - Il Java Development Kit contiene tutto
il necessario per compilare, eseguire e debuggare Java.  
<item><em>ibm-jre-l118-linux-x86.tgz</em> - Il Java Runtime Environment contiene tutto il 
necessario per eseguire Java.  
</itemize>

Considerando che si ha intenzione di fare sviluppo Java suggerirei di scaricare il file tarball ibm-jdk.
<sect2>Installazione 
<p>

Suggerirei di installare i file nella directory /usr/local. Dopo aver scaricato
i file, eseguire:  
<verb>mkdir /usr/local/ibm
mv ibm-jdk-l118-linux-x86.tgz /usr/local/ibm
</verb>

Si potranno quindi aprire i pacchetti di distribuzione. Per farlo digitare: 
<verb>tar zxvf ibm-jdk-l118-linux-x86.tgz
</verb>

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. 
<sect2>Predisporre l'ambiente
<p>

Le variabili d'ambiente da impostare sono: 
<itemize>
<item>JAVA_HOME 
<item>PATH 
<item>CLASSPATH 
</itemize>

<verb>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 &egrave; appena installata la versione del Java Developer Kit di IBM. 
</verb>

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.
<verb>export PATH=&dollar;JAVA_HOME/bin:&dollar;PATH
</verb>

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

Per confermare che il PATH sia correttamente impostato, si controlli quale compilatore Java
e JVM siano installati.
<verb>which javac
which java
</verb>

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: 
<verb>export CLASSPATH=&dollar;JAVA_HOME/lib/classes.zip
export CLASSPATH=&dollar;CLASSPATH:.
</verb>
<sect2>Verifica dell'installazione
<p>

Ora si &egrave; in grado si compilare ed eseguire una semplice applicazione. Creare il
il seguente programma. 
<verb>class HelloWorld &lcub;
  public static void main (String&lsqb;&rsqb; args) &lcub;
    System.out.println(&dquot;Hello, World!&dquot;);
  &rcub;
&rcub;
</verb>

Compilare il programma con il compilatore Java. 
<verb>javac HelloWorld.java
</verb>

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

Eseguire il programma con la JVM. 
<verb>java HelloWorld
</verb>

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

Si dovrebbe ottenere il seguente output:
<verb>Hello, World!
</verb>

Congratulazioni, si &egrave; installato, configurato e verificato un ambiente
per il Java Developer Kit di IBM per Linux. 
<sect2>Maggiori informazioni
<p>

Per maggiori informazioni sul Java Developer Kit di IBM, si veda il sito IBM dedicato a Java
all'indirizzo: <htmlurl url="http://www.ibm.com/java" name="http://www.ibm.com/java">.
  
<sect1>Kaffe<label id="sec: kaffe">
<p>
<sect2>Generalit&agrave;
<p>

Kaffe &egrave; 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 &quot;&egrave; per lo pi&ugrave; conforme
al JDK 1.1, ad eccezione di alcune parti mancanti.&quot; Ed &quot;alcune parti
sono gi&agrave; compatibili con JDK 1.2 (Java 2)&quot; (dal sito Kaffe).
 
&Egrave; probabile che Kaffe sia gi&agrave; contenuto nella distribuzione Linux in uso grazie alla sua 
licenza open source. 
<sect2>Download ed installazione
<p>

Prima di scaricarla da Kaffe, suggerirei inizialmente di provare la Kaffe
che molto probabilmente &egrave; gi&agrave; disponile nella distribuzione Linux in uso. 

In alternativa, Kaffe pu&ograve; essere ottenuto da
<htmlurl url="http://www.kaffe.org" name="http://www.kaffe.org">. 

Dalla home page di Kaffe, selezionare il rilascio pi&ugrave; recente. Al momento della redazione
di questo documento, il rilascio pi&ugrave; recente &egrave; 1.0.5. Il numero di versione di Kaffe 
non ha nessun rapporto con i numeri di specifica di JDK.
<sect2>Predisporre l'ambiente 
<p>

Le variabi d'ambiente da impostare sono:  
<itemize>
<item>PATH 
<item>CLASSPATH 
</itemize>

Per verificare che il PATH sia correttamente impostato, si controlli quale compilatore Java
e JVM vengano usati. 
<verb>which javac
which java
</verb>

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: 
<verb>export CLASSPATH=/usr/local/share/kaffe/Klasses.zip
export CLASSPATH=&dollar;CLASSPATH:.
</verb>
<sect2>Verifica dell'installazione 
<p>

Ora si &egrave; in grado di compilare ed eseguire una semplice applicazione. Creare il
il seguente programma. 
<verb>class HelloWorld &lcub;
  public static void main (String&lsqb;&rsqb; args) &lcub;
    System.out.println(&dquot;Hello, World!&dquot;);
  &rcub;
&rcub;
</verb>

Compilare il programma con il compilatore Java.
<verb>javac HelloWorld.java
</verb>

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

Eseguire il programma con la JVM. 
<verb>java HelloWorld
</verb>

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

Si dovrebbe ottenere il seguente output: 
<verb>Hello, World!
</verb>

Congratulazioni, si &egrave; installato, configurato e verificato un ambiente
Kaffe per Linux. 
<sect2>Maggiori informazioni 
<p>

Per maggiori informazioni su Kaffe, vedere il sito di Kaffe all'indirizzo 
<htmlurl url="http://www.kaffe.org" name="http://www.kaffe.org">.  
<sect1>Sun J2SE <label id="sec: j2se">
<p>
<sect2>Generalit&agrave; 
<p>

Sun Java 2, Standard Edition (J2SE) &egrave; il rilascio per la produzione di Sun
della piattaforma Java 2 per il sistema operativo Linux. Al momento dell'estensione di questo
documento, J2SE &egrave; allineato con JDK 1.2.2 per l'architettura Intel. 
<sect2>Download 
<p>

J2SE pu&ograve; essere ottenuto da: 
<htmlurl url="http://developer.java.sun.com/developer/earlyAccess/j2sdk122" name="http://developer.java.sun.com/developer/earlyAccess/j2sdk122">.
 
&Egrave; necessario registrarsi presso Sun ed accettare i termini della licenza in linea prima di 
scaricare. 
<sect2>Installazione 
<p>

Suggerirei d'installare i file nella directory /usr/local. Dopo aver scaricato
i file, eseguire:
<verb>mkdir /usr/local/sun
mv jdk1_2_2rc1-linux-i386.tar.gz /usr/local/sun
</verb>

Si potranno allora aprire i pacchetti di distribuzione. Per farlo digitare: 
<verb>tar zxvf jdk1_2_2rc1-linux-i386.tar.gz
</verb>

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.  
<sect2>Predisporre l'ambiente
<p>

Le variabili d'ambiente da impostare sono: 
<itemize>
<item>JAVA_HOME 
<item>PATH 
<item>CLASSPATH 
</itemize>

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 &egrave; appena installata la versione di J2SE. 
<verb>export JAVA_HOME=/usr/local/sun/jdk1.2.2
</verb>

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. 
<verb>export PATH=&dollar;JAVA_HOME/bin:&dollar;PATH
</verb>

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

Per confermare che il PATH sia correttamente impostato si controlli quali compilatore Java
e JVM risultano installati. 
<verb>which javac
which java
</verb>

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 &egrave; necessario aggiungere alcun JAR al CLASSPATH.
I JAR possono essere pacchettizzati sia come file .jar che .zip.
<verb>export CLASSPATH=&dollar;CLASSPATH:.
</verb>
<sect2>Verifica dell'installazione 
<p>

Si &egrave; ora in grado di compilare ed eseguire una semplice applicazione. Creare il seguente
programma. 
<verb>class HelloWorld &lcub;
  public static void main (String&lsqb;&rsqb; args) &lcub;
    System.out.println(&dquot;Hello, World!&dquot;);
  &rcub;
&rcub;
</verb>

Compilare il programma con il compilatore Java.  
<verb>javac HelloWorld.java
</verb>

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

Eseguire il programma con la JVM.  
<verb>java HelloWorld
</verb>

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

Si dovrebbe ottenere il seguente output: 
<verb>Hello, World!
</verb>

Congratulazioni, si &egrave; installato, configurato e verificato un ambiente
per Sun J2SE per Linux. 
<sect2>Maggiori informazioni 
<p>

Per maggiori informazioni su Sun J2SE, vedere il sito Sun dedicato a Java all'indirizzo:
<htmlurl url="http://java.sun.com" name="http://java.sun.com">. Ci sono eccellenti 
forum di discussione disponibili dove si possono trovare risposte a svariate domande.
<sect>Come predisporre il server Web <label id="sec: web">
<p>

Ci sono parecchi server Web disponibili per Linux. Tra questi sono inclusi:
<itemize>
<item><ref id="sec: apache" name="Apache ">
<item><ref id="sec: domino" name="IBM Domino ">
<item><ref id="sec: ibmhttp" name="IBM HTTP Server ">
<item><ref id="sec: jetty" name="Jetty HTTP Server">
</itemize>

Se si volesse provare solo un Web Server, suggerirei di provare inizialmente 
Apache, principalmente perch&eacute; &egrave; presente nella maggior parte delle maggiori distribuzioni Linux ed
&egrave; probabile sia gi&agrave; installato, e forse funzionante, nel sistema in uso. 
<sect1>Apache <label id="sec: apache">
<p>
<sect2>Generalit&agrave; 
<p>

Apache &egrave; il pi&ugrave; popolare server HTTP in Internet. Originariamente era basato sull'httpd NCSA 
ed &egrave; stato poi completamente riscritto. Ha una licenza Open Source (dal sito web di Apache). 
<sect2>Download, installazione e predisposizione dell'ambiente
<p>

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

In alternativa, Apache pu&ograve; essere ottenuto da 
<htmlurl url="http://www.apache.org" name="http://www.apache.org">. 
<sect2>Verifica dell'installazione 
<p>

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

Si dovrebbe vedere una pagina web che abbia un effetto simile a &quot;Funziona!&quot; 

Se non dovesse funzionare, si pu&ograve; avere conferma che Apache sia installato digitando
il seguente comando in una distribuzione Linux basata sul RedHat Package Manager (RPM). 
<verb>rpm -q | grep apache
</verb>

Per lanciare Apache digitare:
<verb>cd /etc/rc.d/init.d
./httpd start
</verb>

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:
<htmlurl url="http://www.apache.org/docs/misc/FAQ.html" name="http://www.apache.org/docs/misc/FAQ.html">.
 
<sect1>IBM Domino <label id="sec: domino">
<p>

Da scrivere. 

Vedere 
<htmlurl url="http://www.lotus.com/dominolinux" name="http://www.lotus.com/dominolinux">per
maggiore informazioni.
<sect1>IBM HTTP Server <label id="sec: ibmhttp">
<p>
<sect2>Generalit&agrave; 
<p>

Il server HTTP di IBM &egrave; 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&ugrave; recente versione &egrave; la 1.3.6.1. 
<sect2>Download 
<p>

L'IBM HTTP Server pu&ograve; essere ottenuto da 
<htmlurl url="http://www-4.ibm.com/software/webservers/httpservers/download.html" name="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&agrave; 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 &egrave; la nuova libc di Linux. Se si &egrave; in possesso
di una vecchia distribuzione che si basa sulla libc5, non si sar&agrave; in grado di usare l'IBM
HTTP Server. 

Su una distribuzione Linux basata su RedHat Package Manager (RPM), eseguire:
 
<verb>rpm -qa | grep libc
</verb>

L'output sar&agrave; del tipo: 
<verb>glibc-2.1.2-11
libc-5.3.12-31
</verb>

Questo mostrer&agrave; 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 &egrave; 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&agrave; anche necessario la redhat60only. 
Per distribuzioni basate su glibc2.0 sar&agrave; necessario pure il file libstdc. 
<sect2>Installazione 
<p>

Si suggerisce d'installare i file nella directory /usr/local. Dopo aver scaricato i 
file, eseguire: 
<verb>mkdir /usr/local/ibm
mv HTTPServer.linux.* /usr/local/ibm
</verb>

Si pu&ograve; ora aprire il pacchetto di distribuzione del file o dei file.
<verb>tar xvf &lsqb;filename&rsqb;.tar
</verb>

Dove &lsqb;filename&rsqb; &egrave; 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&agrave; necessario installarlo
per primo. Dopo di che installare il file RPM del server nel modo seguente: 
<verb>cd IHS
rpm -i IBM_HTTP_Server-1.3.6-2.i386.rpm
</verb>

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. 
<sect2>>Predisporre l'ambiente
<p>

Le variabili d'ambiente da impostare sono: 
<itemize>
<item>PATH
</itemize>

L'IBM HTTP Server si installa in /opt/IBMHTTPServer. &Egrave; necessario
aggiungere la sua directory bin nel PATH. 
<verb>export PATH=/opt/IBMHTTPServer/bin:&dollar;PATH
</verb>

Notare che il percorso /opt/IBMHTTPServer/bin &egrave; stato aggiunto al principio del PATH cos&igrave;
che verr&agrave; usato il server WEB installato piuttosto che un qualche server Web che potrebbe essere 
gi&agrave; 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: 
<verb>which apachectl
</verb>

L'output dovrebbe far riferimento a apachectl nella directory /opt/IBMHTTPServer/bin.
 
Nota: poich&eacute; l'IBM HTTP Server &egrave; 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&ograve; essere necessario modificare il file di configurazione di IBM HTTP Server. Il file di 
configurazione &egrave; installato in /opt/IBMHTTPServer/conf/httpd.conf. Le due voci pi&ugrave; comuni 
da dover modificare sono il ServerName e il numero dalla porta d'ascolto (Listen port number). 
Ricercare le parole chiave &quot;ServerName&quot; e &quot;Listen&quot; 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 &egrave; � 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&agrave; 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. 
<verb>ServerName 192.168.0.4
Listen 3000
</verb>
<sect2>Verifica dell'installazione 
<p>

Per lanciare l'IBM HTTP Server, digitare come segue: 
<verb>/opt/IBMHTTPServer/bin/apachectl start
</verb>

Per verificare che l'IBM HTTP Server &egrave; installato e funzionante sul computer in uso,
aprire il browser web e inserire lo URL: &quot;http://192.168.0.4:3000&quot;
sostituendo il corretto indirizzo IP e numero di porta effettivamente inseriti nel httpd.conf.
 
Si dovrebbe vedere una pagina web il cui effetto sia &quot;Welcome to the IBM HTTP
Server&quot;. Congratulazioni, si &egrave; installato, configurato e verificato un ambiente
per l'IBM HTTP Server per Linux.
<sect2>Maggiori informazioni
<p>

Per maggiori informazioni, si suggerisce di guardare le pagine del supporto per l'IBM HTTP Server all'indirizzo:
<htmlurl url="http://www-4.ibm.com/software/webservers/httpservers/support.html" name="http://www-4.ibm.com/software/webservers/httpservers/support.html">.
 
<sect1>Jetty HTTP Server e contenitore Servlet <label id="sec: jetty">
<p>
<sect2>Generalit&agrave; 
<p>
Jetty &egrave; un HTTP Servlet Server open source scritto in Java al 100%. 
E&grave: sia un server HTTP/1.1 completo che un contenitore di Servlet. 
&Egrave; stato progettato per essere leggero, molto performante, integrabile, estensibile
e flessibile, facendone una piattaforma ideale per servire richieste HTTP dinamiche 
da qualsiasi applicazione Java. 
<p>
Jetty pu&ograve; essere usato come server HTTP e contenitore di servlet indipendente ovvero 
pu&ograve; essere usato integrato in un'altra applicazione Java (ed esempio il contenitore di EJB JBoss 
st&agrave; usando Jetty come sua soluzione preferita per server e contenitore). 
<p>
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 &egrave; pi&ugrave; semplice 
perch&eacute; si tratta di una singola applicazione.
<p>
<sect2>Download
<p>
Il Jetty HTTP Server e Servlet container p�&ograve; essere scaricato via:
<p>
<htmlurl url="http://jetty.mortbay.org" name="http://jetty.mortbay.org">. 
<p>
Jetty &egrave; distribuito sotto la Artistic License, i sorgenti completi sono inclusi e
pu&ograve; essere usata e distribuita commercialmente.
<p>
<sect2>Installazione 
<p>
Il pacchetto &egrave; distribuito come un file tar compresso con gzip, che pu&ograve; 
essere spacchettato con:
<verb>gunzip &lt; Jetty-x.x.x.tgz | tar xf - 
</verb>

Che creer&agrave; una directory Jetty-x.x.x dove x.x.x &egrave; il numero
della versione.   
<p> 
Per eseguire il server demo:
<verb>export JETTY_HOME=<jetty install directory>
export JAVA_HOME=<JRE install directory>
&dollar;JETTY_HOME/bin/jetty.sh run 
</verb>
Quindi per vedere il demo ed il tutorial di Jetty far puntare il browser a 
<htmlurl url="http://localhost:8080" name="http://localhost:8080">. 
<p>
Jetty pu&ograve; essere installato ed eseguito via JMX o come parte della distribuzione di JBoss. Vedere 
<htmlurl url="http://jetty.mortbay.org" name="http://jetty.mortbay.org">
o il file README.TXT per maggiori dettagli.

<sect>Come predisporre il supporto per le Servlet Java  <label id="sec: servlet">
<p>

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:
<itemize>
<item><ref id="sec: jrun" name="Allaire JRun">
<item><ref id="sec: jserv" name="Apache Tomcat">
<item><ref id="sec: weblogicservlet" name="BEA WebLogic">
<item><ref id="sec: enhydra" name="Enhydra">
<item><ref id="sec: locomotive" name="Locomotive">
<item><ref id="sec: websphere" name="IBM Websphere ">
<item><ref id="sec: jettyservlet" name="Jetty">
</itemize>
 
<sect1>Allaire JRun<label id="sec: jrun">
<p>

Da scrivere. 

Vedere
<htmlurl url="http://www.allaire.com/products/jrun/" name="http://www.allaire.com/products/jrun/">per
maggiori informazioni.
<sect1>Apache Tomcat <label id="sec: jserv">
<p>
<sect2>Generalit&agrave; 
<p>
JServ &egrave; stato sostituito con Tomcat dal progetto Apache Jakarta: 
<htmlurl url="http://jakarta.apache.org/" name="http://jakarta.apache.org/">.
Questa sezione &egrave; ancora scritta per JServ e ha necessit&agrave; di essere aggiornata.
<p>
Apache JServ &egrave; un motore servlet al 100% Java, completamente conforme
alle specifiche Java Servlet 2.0. Apache JServ &egrave; parte del progetto Java
Apache (dal sito web Apache Java Project).
<sect2>Download 
<p>

Apache JServ pu&ograve; essere ottenuto da
<htmlurl url="http://java.apache.org/jserv/index.html" name="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 &egrave; la 1.1b3.
<sect2>Installazione 
<p>

Suggerirei di installare i file nella directory /usr/local. Dopo aver scaricato
i file eseguire:
<verb>mkdir /usr/local/apachejserv  
mv ApacheJServ*.rpm /usr/local/apachejserv 
</verb>

Per la RedHat e le distribuzioni derivate dalla RedHat usare il RedHat Package Manager
(RPM)per installare i file rpm con: 
<verb>rpm -i ApacheJServ-1.1-b2_RH6x.i386.rpm  
</verb>

L'esempio di cui sopra mostra la versione 1.1-b2 per la RedHat 6x su architettura Intel.
 
<sect2>Predisporre l'ambiente 
<p>

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

Per fermare Apache digitare:
<verb>cd /etc/rc.d/init.d
./httpd stop
</verb>

Nota: lo script httpd usato al momento del boot pu&ograve; 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. &Egrave; necessario
impostare molte propriet&agrave; nel file jserv.properties installato in /etc/httpd/conf/jserv.
Nello specifico, cercare: 
<itemize>
<item>wrapper.bin - per far riferimento al JDK installato
<item>wrapper.classpath - che al minimo deve includere /usr/lib/apache/ApacheJServ.jar
e /home/httpd/classes/servlet-2.0.jar 
<item>bindaddress=localhost 
<item>port=8007 
</itemize>

Per riavviare Apache digitare:
<verb>cd /etc/rc.d/init.d
./httpd start
</verb>
<sect2>Verifica dell'installazione
<p>

Per verificare che Apache JServ sia installato e funzionante sul computer in uso,
aprire il browser, e inserire lo URL: &quot;http://127.0.0.1/servlet/IsItWorking&quot;
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 &quot;Yes, It's Working!&quot;.
Contratulazioni, si &egrave; 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:
 
<htmlurl url="http://java.apache.org/jserv/index.html" name="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.
<verb>import java.io.*;  
import javax.servlet.*; 
import javax.servlet.http.*; 
 
public class HelloWorldServlet extends HttpServlet &lcub; 
  public void service (HttpServletRequest request, 
    HttpServletResponse response) throws ServletException, IOException &lcub; 
  &rcub; 
&rcub;
</verb>
<sect2>Maggiori informazioni
<p>

Per maggiori informazioni, suggerirei di guardare il sito web di Java Apache Project 
all'indirizzo  <htmlurl url="http://java.apache.org/" name="http://java.apache.org/">.
 
<sect1>BEA WebLogic <label id="sec: weblogicservlet">
<p>

Si veda <ref id="sec: weblogic" name="BEA WegLogic "> di seguito.
<sect1>Enhydra<label id="sec: enhydra">
<p>

Da scrivere. 

Vedere
<htmlurl url="http://www.enhydra.org" name="http://www.enhydra.org">per maggiori
 informazioni.
<sect1>IBM WebSphere <label id="sec: websphere">
<p>

Da scrivere. 

Vedere
<htmlurl url="http://www-4.ibm.com/software/webservers/appserv/linux.html" name="http://www-4.ibm.com/software/webservers/appserv/linux.html"> per
 maggiori informazioni.
<sect1>Locomotive<label id="sec: locomotive">
<p>

Da scrivere.

Vedere 
<htmlurl url="http://www.locomotive.org/" name="http://www.locomotive.org/"> per
 maggiori informazioni.

<sect1>Jetty<label id="sec: jettyservlet">
<p>
Il server HTTP Jetty &egrave; 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.
<p>

<sect>Come predisporre il supporto delle Java Server Pages (JSP)<label id="sec: jsp">
<p>

Da scrivere.
<sect1>Apache Jakarta<label id="sec: jakarta">
<p>

Da scrivere.

Vedere 
<htmlurl url="http://jakarta.apache.com/" name="http://jakarta.apache.com/"> per
 maggiori informazioni.
<sect1>Caucho Resin<label id="sec: resin">
<p>

Da scrivere.

Vedere <htmlurl url="http://www.caucho.com/" name="http://www.caucho.com/"> per
 maggiori informazioni.

<sect1>Jetty<label id="sec: jettyjsp">
<p>
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.
<p>

<sect>Come predisporre il supporto per JDBC <label id="sec: jdbc">
<p>

Ci sono diversi database che funzionano su Linux che supportano anche un'interfaccia JDBC.
Tra questi sono inclusi: 
<itemize>
<item><ref id="sec: db2" name="IBM DB2 ">
<item><ref id="sec: minisql" name="MiniSQL ">
<item><ref id="sec: mysql" name="MySQL ">
<item><ref id="sec: oracle" name="Oracle ">
<item><ref id="sec: postgresql" name="PostgreSQL ">
<item><ref id="sec: sybase" name="Sybase ">
</itemize>

Se si volesse provare solo un DBMS, suggerirei inizialmente di provare PostgreSQL,
principalmente perch&eacute; &egrave; presente nella maggior parte delle maggiori distribuzioni Linux ed
&egrave; probabile che sia gi&agrave; installato, e forse funzionante, nel sistema in uso. 
<sect1>IBM DB2 <label id="sec: db2">
<p>

Da scrivere. 

Vedere
<htmlurl url="http://www-4.ibm.com/software/data/db2/linux/" name="http://www-4.ibm.com/software/data/db2/linux/"> per
maggiori informazioni.
<sect1>MiniSQL <label id="sec: minisql">
<p>

Da scrivere. 

Vedere
<htmlurl url="http://www.hughes.com.au/" name="http://www.hughes.com.au/"> per 
maggiori informazioni.
<sect1>MySQL <label id="sec: mysql">
<p>

Da scrivere. 

See <htmlurl url="http://www.mysql.org/" name="http://www.mysql.org/"> per
maggiori informazioni.
<sect1>Oracle <label id="sec: oracle">
<p>

Da scrivere. 

Vedere
<htmlurl url="http://platforms.oracle.com/linux/" name="http://platforms.oracle.com/linux/">
<sect1>PostgreSQL <label id="sec: postgresql">
<p>
<sect2>Generalit&agrave; 
<p>

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

PostgreSQL potrebbe essere gi&agrave; contenuto nella distribuzione Linux in uso per via della sua licenza open source.
<sect2>Download ed installazione
<p>

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

In alternativa, PostgreSQL pu&ograve; essere ottenuto da
<htmlurl url="http://www.postgresql.org" name="http://www.postgresql.org">.

Per verificare che PostgreSQL sia installato sul computer in uso digitare: 
<verb>rpm -qa | grep postgresql
</verb>

o 
<verb>which postmaster
which psql
</verb>

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

Accertarsi che PostgreSQL sia in esecuzione. Digitare: 
<verb>ps -f -u postgres
</verb>

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

Se postmaster non fosse attivo, ci sar&agrave; probabilmente uno script Sys V Init
che pu&ograve; essere usato per avviarlo. In molte distribuzioni &egrave; localizzato in /etc/rc.d/init.d.
Per lanciare PostgreSQL, digitare:
<verb>cd /etc/rc.d/init.d
./postgresql start
</verb>

Si pu&ograve; usare il comando &quot;ps&quot; di cui sopra per avere una conferma che PostgreSQL
&egrave; 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: 
<verb>su - postgres
createdb javatest
</verb>

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):
<verb>psql javatest
</verb>

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

Poi, creare la tabella di test digitando (all'interno di psql):
<verb>create table test (col1 varchar(255));
</verb>

Si dovrebbe vedere il messaggio di conferma del comando &quot;CREATE&quot;. 

Quindi, inserire una riga digitando (all'interno di psql): 
<verb>insert into test (col1) values ('Hello, from PostgreSQL!');
</verb>

Si dovrebbe vedere il messaggio di conferma del comando &quot;INSERT&quot;.  

Finalmente, verificare che la riga sia presente digitando (all'interno di psql):
<verb>select col1 from test;  
</verb>

Si dovrebbe vedere la riga appena creata. 

Si pu&ograve; uscire da psql digitando &quot;\q&quot;. 

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:
<htmlurl url="http://metalab.unc.edu/mdw/HOWTO/PostgreSQL-HOWTO.html" name="http://metalab.unc.edu/mdw/HOWTO/PostgreSQL-HOWTO.html">.

&Egrave; necessario aggiungere il JAR appropriato nel CLASSPATH. I JAR di PostgreSQL
vengono forniti con il pacchetto <EM>postgresql-jdbc</EM>. 
<verb>export CLASSPATH=&dollar;CLASSPATH:/usr/lib/pgsql/jdbc6.5-1.2.jar
</verb>

Si potrebbe aver bisogno di sostituire il percorso a seconda di dove &egrave; stato installato PostgreSQL
sul sistema in uso.
<sect2>Verifica dell'installazione
<p>

Si &egrave; ora in grado di compilare ed eseguire una semplice applicazione JDBC che usi
PostgreSQL. Creare il seguente programma.
<verb>import java.sql.*;

class PostgreSQLTest &lcub;
  public static void main (String&lsqb;&rsqb; args) &lcub;
    try &lcub;
      Driver driver = (Driver)
        Class.forName(&dquot;postgresql.Driver&dquot;).newInstance();
      DriverManager.registerDriver(driver);

      String     url = &dquot;jdbc:postgresql:javatest&dquot;; 
      Connection con = DriverManager.getConnection(url, &dquot;postgres&dquot;, &dquot;&dquot;); 
      Statement  stm = con.createStatement(); 
 
      stm.setQueryTimeout(10); 
      ResultSet  rs  = stm.executeQuery(&dquot;select col1 from test&dquot;); 
 
      rs.next(); 
 
      System.out.println(rs.getString(1)); 
 
    &rcub; catch (SQLException e) &lcub; 
 
      System.out.println(&dquot;Exception!&dquot;); 
      System.out.println(e.toString()); 
  &rcub; 
&rcub; 
</verb>

Compilare il programma con il compilatore Java. 
<verb>javac PostgreSQLTest.java  
</verb>

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

Eseguire il programma con la JVM.
<verb>java PostgreSQLTest  
</verb>

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

Si dovrebbe vedere l'output: 
<verb>Hello, from PostgreSQL!  
</verb>

Congratulazioni, si &egrave; installato, configurato e provato un ambiente per 
l'interfaccia JDBC verso PostgreSQL. 
<sect2>Maggiori informazioni
<p>

Per maggiori informazioni, suggerirei di esaminare a fondo il sito web di PostgreSQL all'indirizzo
 
<htmlurl url="http://www.postgresql.org/" name="http://www.postgresql.org/">.
 
<sect1>Sybase <label id="sec: sybase">
<p>
<sect2>Generalit&agrave; 
<p>

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

Secondo il sito web di Sybase, &quot;Con il port di ASE su Linux, Sybase
ha dato alla comunit&agrave; di sviluppo di Linux il primo motore di database ad alta scalabilit&agrave; ad alte prestazioni
per la piattaforma. Il pacchetto include le caratteristiche standard
dell'Adaptive Server Enterprise e di tutti i componenti di connettivit&agrave; relativi.
La versione 11.9.2 &egrave; offerta per sviluppo LIBERO&quot;.
 
<sect2>Download 
<p>

Sybase ASE pu&ograve; essere ottenuto da
<htmlurl url="http://www.sybase.com/products/databaseservers/linux/linux1192_reg.html" name="http://www.sybase.com/products/databaseservers/linux/linux1192_reg.html">.

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

Il driver JDBC di Sybase JDBC pu&ograve; essere ottenuto da
<htmlurl url="http://www.sybase.com/products/internet/jconnect/" name="http://www.sybase.com/products/internet/jconnect/">.

Selezionare download jConnect 4.2/5.2.   

Se si ha accesso ad un server Sybase in rete, &egrave; sufficiente 
scaricare ed installare il solo driver JDBC. 
<sect2>Installazione
<p>

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:
 
<verb>create database javatest  
go 
sp_addlogin javatest, javatest, javatest 
go 
use javatest 
go 
sp_dbowner javatest 
go 
</verb>

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:
<verb>create table test (col1 varchar(255))  
go 
</verb>

Non si dovrebbe vedere alcun messaggio di errore. 

Poi, inserire una riga digitando: 
<verb>insert into test (col1) values ('Hello, from Sybase!')  
go 
</verb>

Non si dovrebbe vedere alcun messaggio di errore. 

Alla fine, verificare che la riga sia presente digitando: 
<verb>select col1 from test  
go 
</verb>

Si dovrebbe vedere la riga appena creata. 

Si pu&ograve; uscire da isql digitando &quot;exit&quot;. 

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

Potrebbe essere necessario aggiungere gli appropriati JAR al CLASSPATH. 
<verb>export CLASSPATH=&dollar;CLASSPATH:/usr/local/sybase/jConnect-5_2/classes/jconn2.jar  
</verb>

Potrebbe essere necessario sostituire il percorso in base a dove si &egrave; installato jConnect. 
<sect2>Verifica dell'installazione
<p>

Si &egrave; ora in grado di compilare ed eseguire una semplice applicazione JDBC che usi
PostgreSQL.  Creare il seguente programma.
<verb>import java.sql.*;  
 
class SybaseTest &lcub; 
  public static void main (String&lsqb;&rsqb; args) &lcub; 
    try &lcub; 
      Driver driver = (Driver) 
        Class.forName(&dquot;com.sybase.jdbc2.jdbc.SybDriver&dquot;).newInstance(); 
      DriverManager.registerDriver(driver); 
 
      String     host = &dquot;127.0.0.1&dquot;; 
      String     port = &dquot;4100&dquot;; 
 
      String     url = &dquot;jdbc:sybase:Tds:&dquot; + host + &dquot;:&dquot; + port; 
      Connection con = DriverManager.getConnection(url, &dquot;javatest&dquot;, &dquot;javatest&dquot;); 
      Statement  stm = con.createStatement(); 
 
      stm.setQueryTimeout(10); 
      ResultSet  rs  = stm.executeQuery(&dquot;select col1 from test&dquot;); 
 
      rs.next(); 
 
      System.out.println(rs.getString(1)); 
 
    &rcub; catch (SQLException e) &lcub; 
 
      System.out.println(&dquot;Exception!&dquot;); 
      System.out.println(e.toString()); 
  &rcub; 
&rcub; 
</verb>

Sar&agrave; 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. 
<verb>javac SybaseTest.java  
</verb>

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

Eseguire il programma con la JVM. 
<verb>java SybaseTest  
</verb>

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

Si dovrebbe vedere il seguente output: 
<verb>Hello, from Sybase!  
</verb>

Congratulazione, si &egrave; installato, configurato e provato un ambiente per l'interfaccia 
JDBC verso Sybase. 
<sect2>Maggiori informazioni
<p>

Per maggiori informazioni, suggerirei di guardare a fondo il sito web dedicato a jConnect di Sybase 
all'indirizzo
<htmlurl url="http://www.sybase.com/products/internet/jconnect/" name="http://www.sybase.com/products/internet/jconnect/">.
 
<sect>Come predisporre il supporto degli Enterprise Java Bean (EJB) <label id="sec: ejb">
<p>

Da scrivere.
<sect1>BEA WebLogic <label id="sec: weblogic">
<p>

Da scrivere. 

Vedere 
<htmlurl url="http://www.beasys.com/linux/" name="http://www.beasys.com/linux/"> per
maggiori informazioni.

<sect1>EJBoss<label id="sec: ejboss">
<p>
<sect2>Generalit&agrave;
<p>
EJBoss &egrave; stato rinominato JBoss ed &egrave; molto progredito con rilasci stabili conformi a J2EE 
all'indirizzo <htmlurl url="http://www.jboss.org/" name="http://www.jboss.org/">.
<p>
Questa sezione &egrave; stata scritta quando ancora era EJBoss 0.95 e richiede un aggiornamento.

<sect2>Download
<p>

JBoss pu&ograve; essere scaricato dal sito web di JBoss all'indirizzo
<htmlurl url="http://www.jboss.org/" name="http://www.jboss.org/">.

<sect2>Installazione
<p>

Suggerirei di installare i file nella directory /usr/local. Dopo il download
eseguire:
<verb>mkdir /usr/local/ejboss 
mv ejboss* /usr/local/ejboss
</verb>

Spacchettare il file:
<verb>jar xvf ejboss095_jdk122.jar
</verb>

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.
<sect2>Predisposizione dell'ambiente
<p>

Le variabili d'ambiente da impostare sono:
<itemize>
<item>CLASSPATH
</itemize>

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.
<verb>export CLASSPATH=/usr/local/ejboss/lib/ejboss095_jdk122.jar:/usr/local/ejboss/beans/generated:&dollar;CLASSPATH
</verb>
<sect2>Verifica dell'installazione
<p>

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.
<verb>// EJBTest.java

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

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

&rcub;
</verb>

Secondo, la home interface.
<verb>// EJBTestHome.java

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

public
 interface EJBTestHome extends EJBHome &lcub;

  public EJBTest create() throws
 
   CreateException, RemoteException;
&rcub;
</verb>

Terzo, la classe che implementa il bean.
<verb>// EJBTestBean.java

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

public
 interface EJBTestBean implements SessionBean &lcub;

  private SessionContext
 mContext = null;

  public void ejbPassivate() &lcub;
    System.out.println(&dquot;EJBTestBean
 passivated.&dquot;);
&rcub;

  public void ejbActivate() &lcub;
    System.out.println(&dquot;EJBTestBean
 activated.&dquot;);
&rcub;

  public void ejbCreate() &lcub;
    System.out.println(&dquot;EJBTestBean
 created.&dquot;);
&rcub;

  public void ejbRemove() &lcub;
    System.out.println(&dquot;EJBTestBean
 removed.&dquot;);
&rcub;

  public void setSessionContext() &lcub;
    System.out.println(&dquot;EJBTestBean
 context set.&dquot;);
    mContext = context;
&rcub;

  public String greet()
 &lcub;
    return &dquot;Hello, I'm an EJB!&dquot;;
&rcub;

&rcub;
</verb>

Compilare i file sorgenti per il server con il compilatore Java:
<verb>javac EJBTest*.java
</verb>

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

Ora che si &egrave; 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.
<verb>&lt;?xml version=&dquot;1.0&dquot; encoding=&dquot;Cp1252&dquot;?&gt;
</verb>
<verb> 
</verb>
<verb>&lt;ejb-jar ID=&dquot;&dquot;&gt;
</verb>
<verb>     &lt;description&gt;&lt;/description&gt;
</verb>
<verb>     &lt;display-name&gt;&lt;/display-name&gt;
</verb>
<verb>     &lt;small-icon&gt;&lt;/small-icon&gt;
</verb>
<verb>     &lt;large-icon&gt;&lt;/large-icon&gt;
</verb>
<verb>     &lt;ejb-client-jar&gt;&lt;/ejb-client-jar&gt;
</verb>
<verb>     &lt;enterprise-beans&gt;
</verb>
<verb>       &lt;session&gt;
</verb>
<verb>         &lt;description&gt;Nextgen bean&lt;/description&gt;
</verb>
<verb>         &lt;ejb-name&gt;nextgen.EJBTest&lt;/ejb-name&gt;
</verb>
<verb>         &lt;home&gt;EJBTestHome&lt;/home&gt;
</verb>
<verb>         &lt;remote&gt;EJBTest&lt;/remote&gt;
</verb>
<verb>         &lt;ejb-class&gt;EJBTestBean&lt;/ejb-class&gt;
</verb>
<verb>         &lt;session-type&gt;Stateful&lt;/session-type&gt;
</verb>
<verb>         &lt;transaction-type&gt;Bean&lt;/transaction-type&gt;
</verb>
<verb>         &lt;env-entry&gt;
</verb>
<verb>           &lt;description&gt;&lt;/description&gt;
</verb>
<verb>           &lt;env-entry-name&gt;&lt;/env-entry-name&gt;
</verb>
<verb>           &lt;env-entry-type&gt;java.lang.String&lt;/env-entry-type&gt;
</verb>
<verb>           &lt;env-entry-value&gt;&lt;/env-entry-value&gt;
</verb>
<verb>         &lt;/env-entry&gt;
</verb>
<verb>         &lt;resource-ref&gt;
</verb>
<verb>           &lt;description&gt;&lt;/description&gt;
</verb>
<verb>           &lt;res-ref-name&gt;&lt;/res-ref-name&gt;
</verb>
<verb>           &lt;res-type&gt;&lt;/res-type&gt;
</verb>
<verb>           &lt;res-auth&gt;Container&lt;/res-auth&gt;
</verb>
<verb>         &lt;/resource-ref&gt;
</verb>
<verb>       &lt;/session&gt;
</verb>
<verb>     &lt;/enterprise-beans&gt;
</verb>
<verb>     &lt;assembly-descriptor /&gt;
</verb>
<verb>   &lt;/ejb-jar&gt;
</verb>

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.
<verb>mkdir META-INF
mv ejb-jar.xml META-INF
</verb>

Terzo, si impacchettino tutti e quattro i file in un jar.
<verb>jar cvf EJBTest.jar EJBTest*.class META-INF/ejb-jar.xml
</verb>

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.
<verb>mv EJBTest.jar /usr/local/ejboss/beans
</verb>

Quinto, spostare i file delle classi creati nella directory beans/generated di EJBoss.
<verb>mv EJBTest*.class /usr/local/ejboss/beans/generated
</verb>

(questo quinto passo &egrave; ridondante a causa di un baco in EJBoss 0.95 )

Si &egrave; ora in grado di attivare il server EJBoss.

<verb>cd /usr/local/ejboss
</verb>
<verb>sh server.sh
</verb>

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

Si &egrave; ora in grado di scrivere, compilare e provare una sempice applicazione client.
<sect1>Bullsoft JOnAS EJB <label id="sec: jonas">
<p>

Da scrivere. 

Vedere 
<htmlurl url="http://www.bullsoft.com/ejb/" name="http://www.bullsoft.com/ejb/">per
 maggiori informazioni.

</article>