Page suivante Page précédente Table des matières
4. Exécution d'un programme Java CGI
4.1 Difficultés d'exécution de programmes Java avec le modèle CGI
L'exécution d'un programme Java depuis un serveur Web pose deux types de problèmes majeurs :
Les programmes Java ne s'exécutent pas comme des binaires ordinaires
Il faut lancer l'interpréteur Java et fournir la classe principale (le programme à exécuter) sur la ligne de commande. Les formulaires HTML ne permettent pas d'envoyer directement une ligne de commande au serveur Web.
Java n'accède pas a priori aux variables d'environnement
Toutes les variables d'environnement requises par le programme Java doivent lui être passées explicitement. Il n'existe pas de méthode similaire à la fonction
getenv()de C .
4.2 Solutions proposées
Pour contourner ces obstacles, j'ai écrit une script shell de CGI, qui fournit les informations nécessaires à l'interpréteur Java.
Le script java.cgi
Ce script de shell se charge de l'interaction entre le démon HTTP et le programme Java CGI que vous souhaitez utiliser. Il extrait le nom du programme que vous souhaitez lancer à partir des données fournies par le serveur. Il récupère ensuite toutes les valeurs d'environnement dans un fichier temporaire. Enfin, il lance l'interpréteur Java en lui passant le nom du fichier contenant les informations d'environnement, ainsi que le nom du programme à exécuter.
Le script
java.cgia été configuré et installé selon les procédure décrites à la section Decide On Your Local Path Policies.Invocation de java.cgi depuis un formulaire HTML
Mes formulaires qui utilisent les programmes Java CGI spécifient l'action à effectuer de la façon suivante :
<form action="/cgi-bin/java.cgi/CGI_Test" method="POST">où/cgi-bin/est votre répertoire local d'exécutables CGI,java.cgiest l'interface permettant de lancer les programmes Java, etCGI_Testest un exemple de programme Java à exécuter.
Page suivante Page précédente Table des matières