<HTML> <HEAD> <TITLE>Exécution d'un programme Java CGI</TITLE> </HEAD> <BODY> <H1>4. <A NAME="s4"></A>Exécution d'un programme Java CGI </H1> <P> <A HREF="Java-CGI-HOWTO.html#toc4">Contenu de cette section</A></P> <P></P> <P></P> <H2>4.1 <A NAME="ss4.1"></A> Difficultés d'exécution de programmes Java avec le modèle CGI </H2> <P>L'exécution d'un programme Java depuis un serveur Web pose deux types de problèmes majeurs :</P> <H3>Les programmes Java ne s'exécutent pas comme des binaires ordinaires </H3> <P>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.</P> <H3>Java n'accède pas <EM>a priori</EM> aux variables d'environnement </H3> <P>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 <CODE>getenv()</CODE> de <B>C</B> .</P> <P></P> <H2>4.2 <A NAME="ss4.2"></A> Solutions proposées </H2> <P>Pour contourner ces obstacles, j'ai écrit une script shell de CGI, qui fournit les informations nécessaires à l'interpréteur Java.</P> <H3>Le script java.cgi </H3> <P>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.</P> <P>Le script <CODE>java.cgi</CODE> a été configuré et installé selon les procédure décrites à la section <A HREF="Java-CGI-HOWTO-2.html#make-programs">Decide On Your Local Path Policies</A> .</P> <H3>Invocation de java.cgi depuis un formulaire HTML </H3> <P>Mes formulaires qui utilisent les programmes Java CGI spécifient l'action à effectuer de la façon suivante : <PRE> <form action="/cgi-bin/java.cgi/CGI_Test" method="POST"> </PRE> où <CODE>/cgi-bin/</CODE> est votre répertoire local d'exécutables CGI, <CODE>java.cgi</CODE> est l'interface permettant de lancer les programmes Java, et <CODE>CGI_Test</CODE> est un exemple de programme Java à exécuter.</P> <P></P> <HR> <P> Chapitre <A HREF="Java-CGI-HOWTO-5.html">suivant</A>, Chapitre <A HREF="Java-CGI-HOWTO-3.html">Précédent</A> <P> Table des matières de <A HREF="Java-CGI-HOWTO.html#toc4">ce chapitre</A>, <A HREF="Java-CGI-HOWTO.html#toc">Table des matières</A> générale</P> <P> <A HREF="Java-CGI-HOWTO.html">Début</A> du document, <A HREF="#0"> Début de ce chapitre</A></P> </BODY> </HTML>