4. Exécution d'un programme Java CGI

Contenu de cette section

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.cgi a é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">
/cgi-bin/ est votre répertoire local d'exécutables CGI, java.cgi est l'interface permettant de lancer les programmes Java, et CGI_Test est un exemple de programme Java à exécuter.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre