Java CGI HOWTO di David H. Silber dhs@orbits.com v0.4, 18 Novembre 1996 Questo HOWTO spiega come configurare il vostro server per accogliere programmi CGI scritti in Java e come utilizzare Java per scrivere pro grammi. Nonostante gli HOWTO abbiano come obiettivo l'utilizzo di Linux come sistema operativo, questo documento si rivolge a tutti gli utilizzatori indipendentemente dalla versione di unix usata. La traduzione italiana è stata curata da Luca Rossetti (lukaros@tin.it). 1. Introduzione A causa del metodo con cui Java è stato scritto, il programmatore non ha un accesso molto semplice alle variabili d'ambiente del sistema. Inoltre, per le modalità con cui il Java Development Kit (JDK) è stato costruito, per lanciare un programma è necessario utilizzare segnali multipli, cosa che non si addice molto alla metodologia di operazioni dello standard HTML forms/CGI. Esistono vari metodi per eliminare queste limitazioni, ed io ho implementato uno di questi. Il seguito di questo documento ne spiega tutti i dettagli. 1.1. Conoscenze necessarie Si assume che abbiate una conoscenza generale del linguaggio HTML e dei concetti legati al CGI e almeno una minima conoscenza del vostro server HTTP. Dovreste anche conoscere la programmazione in Java o molto di quanto leggerete non avrà granché senso. 1.2. Dove trovare questo Documento La versione più recente di questo documento si può trovare presso http://www.orbits.com/software/Java_CGI.html. 1.3. Il Pacchetto Software La versione più recente del pacchetto software descritto può essere scaricata mediante FTP anonimo presso ftp://ftp.orbits.com/pub/software/java_cgi-0.4.tgz.La distribuzione del pacchetto include anche un sorgente SGML di questo documento. Il pacchetto è distribuito nei termini della GNU Library General Public License. Questo documento può essere distribuito nei termini della nota di copyright degli HOWTO di Linux. Se utilizzate questo software, rendete disponibile un collegamento alla pagina http://www.orbits.com/software/Java_CGI.html, cosicché altre persone possano trovare le classi CGI Java. 1.4. Inserzione senza Pudore Questo documento vi proposto viene grazie a Stellar Orbits Technology Services. (Visitate il nostro sito http://www.orbits.com/ per vedere di cosa ci occupiamo.) 2. Come Configurare il Vostro Server per lanciare Programmi Java CGI (con Spiegazioni) Questa sezione vi guiderà nella installazione dei miei pacchetti Java CGI con spiegazioni approfondite per farvi capire quali siano gli effetti di tutte le vostre azioni. Se volete solo installare i programmi e non vi interessano tutti i motivi ed i perché, saltate alla sezione ``Come Configurare il Vostro Server per lanciare Programmi Java CGI (forma abbreviata)''. 2.1. Requisiti di Sistema Questo software dovrebbe funzionare su un qualsiasi web server unix- like che ha il Java Development Kit installato. Io lo utilizzo su un sistema con Debian Linux che usa apache come demone HTTP. Se non dovesse funzionare sul vostro server, contattatemi presso dhs@orbits.com. Sfortunatamente, l'interprete run-time di Java sembra essere veramente ingordo di memoria -- potreste avere la necessità di installare qualche altro megabyte di RAM nel vostro server se vorrete usare estensivamente le capacità dei programmi Java CGI. 2.2. Il Software Add-On di Java CGI Il software di cui ho scritto il codice è chiamato Java CGI. Potete scaricarlo dal sito ftp: ftp://www.orbits.com/pub/software/java_cgi-0.4.tgz. (Il numero della versione potrebbe essere cambiato). 2.3. Come decomprimere il Pacchetto Sorgente Scegliete opportunamente una directory per decomprimere il pacchetto. (Se non avete ancora fissato un posto standard in cui installare i pacchetti software, suggerisco di utilizzare /usr/local/src.) Per decomprimere il file contenente la distribuzione si utilizza il seguente comando: gzip -dc java_cgi-0.4.tgz | tar -xvf - Questo comando creerà una directory chiamata java_cgi-0.4. All'interno di questa directory troverete tutti i file a cui farò riferimento nel resto del documento. (Se il numero della versione è cambiato, consul tate le istruzioni contenute nella distribuzione per continuare l'installazione). 2.4. Le Directory di Installazione A questo punto dovete decidere dove volete che i vostri programmi Java CGI risiedano. Generalmente si mettono in una directory in parallelo con la directory cgi-bin. Il mio server apache è configurato per usare /var/web/cgi-bin come directory cgi-bin, per cui uso /var/web/javacgi come la directory in cui inserire programmi Java. Probabilmente è meglio non mettere i vostri programmi Java CGI nelle directory esistenti nel CLASSPATH. Modificate il Makefile per fare in modo che esso che si adatti alla configurazion del vostro sistema. Come root lanciate make install. Questo compilerà i programmi Java, modificate lo script java.cgi per fare in modo che si adatti al vostro sistema ed installi i programmi nei posti giusti. Se invece volete avere la versione HTML di questo documento e una pagina HTML di test in aggiunta, lanciate make all. 2.5. Come Testare l'installazione. Assieme alla distribuzione trovere dei documenti HTML chiamati javacgitest.html, javaemailtest.html e javahtmltest.html. Se avete installato tutto con make all come menzionato nella sezione precedente, i documenti saranno nella directory che avete specificato come WEBDIR nel Makefile. Se non lo avete fatto, potrete lanciare make test per costruirli da javacgitest.html-dist, javaemailtest.html- dist e javahtmltest.html-dist. Quando siete sicuri che la vostra installazione sia andata a buon fine, potrete decidere se rimuovere CGI_Test.class, Email_Test.class e HTML_Test.class dalla vostra directory JAVACGI e javacgitest.html, javaemailtest.html e javahtmltest.html dalla vostra directory WEBDIR visto che essi mostrano alcune informazioni relative all'utente che sono normalmente disponibili solo al server. 3. Come Configurare il Vostro Server per lanciare Programmi Java CGI (forma abbreviata) · Scaricate il pacchetto Java CGI dal sito ftp ftp://www.orbits.com/pub/software/java_cgi-0.4.tgz. (Il numero della versione potrebbe essere cambiato). · Decomprimete il file contenente la distribuzione utilizzando il comando: gzip -dc java_cgi-0.4.tgz | tar -xvf - (Se il numero della versione è cambiato, consultate le istruzioni con tenute nella distribuzione per continuare l'installazione). · Controllate il contenuto del Makefile che troverete all'interno della directory java_cgi-0.4 appena creata e modificatelo opportunamente per il vostro sistema. · Come root, lanciate make install. Questo comando compilerà i programmi Java, applicherà le informazioni che avete specificato per il vostro sistema ed installerà tutti i file. Se invece desiderate consultare la documentazione in formato HTML e visionare un documento HTML di test, lanciate make all. · Giunti a questo punto dovreste essere pronti per iniziare. 4. Come Eseguire un Programma Java CGI 4.1. Ostacoli quando si lanciano Programmi Java sotto il Modello CGI Esistono due problemi principali nel lanciare un programma Java da un server Web: 4.1.1. Non si possono lanciare programmi Java come normali eseguibili. Bisogna lanciare l'interprete run-time di Java e fornire la classe iniziale (programma da eseguire) in linea di comando. Con un form HTML, non esiste nessuna precauzione nell'inviare una linea di comando al server web. 4.1.2. Con Java non si ha un accesso generale alle variabili d'ambi ente. Ogni variabile d'ambiente necessaria al programma Java deve essere passata esplicitamente. Non esiste un metodo simile alla funzione C getenv(). 4.2. Superare i Problemi lanciando Programmi Java CGI Per eliminare questi ostacoli, ho scritto un programma CGI di shell che fornisce le informazioni necessarie all'interprete Java. 4.2.1. Lo script java.cgi. Questo script di shell si occupa dell'interazione tra il demone HTTP daemon e il programma Java CGI che dovete usare. Estrae il nome del programma che volete lanciare dai dati forniti al server e raccoglie tutti i dati d'ambiente in un file temporaneo. Quindi lancia l'interprete run-time di Java con il nome del file di informazioni d'ambiente e il nome del programma aggiunto alla linea di comando. La spiegazione di come viene configurato ed installato lo script java.cgi si trova nella sezione ``Le Directory di Installazione''. 4.2.2. Come Utilizzare il java.cgi da un form HTML. I forms che usano i programmi Java CGI specificano delle azioni come di seguito formalizzato: