Lancer une tâche sur le serveur depuis un navigateur web

Cette astuce permet de lancer une tâche sur un serveur (par exemple la construction d'un Modèle) depuis un navigateur web. Pour réaliser cette astuce, Apache Tomcat doit être installé sur le serveur.

Tout d'abord, nous allons créer un fichier batch que nous allons appeler tache.bat que nous allons placer dans le répertoire c:/testbat et dont voici son contenu :

date /T >>c:/testbat/log.txt
time /T >>c:/testbat/log.txt

Le lancement de ce fichier batch créée ou modifie le fichier log.txt pour y insérer la date et l'heure système. Ce fichier .bat sera à adapter pour pouvoir par exemple lancer un script Integrator ou Builder.

Une fois le fichier batch créé, nous allons maintenant nous intéresser à la partie web.

Dans le dossier webapps de Tomcat nous allons créer un répertoire lancement dans lequel nous allons placer deux fichiers :

- lancement.html avec pour contenu:

<HTML>
<FORM method=post action="lancement.jsp">
<input type="submit" name="action" value="Lancer la tâche">
</HTML>

- lancement.jsp avec le contenu suivant :

<%
if ((request.getParameter("action"))!=null){
//le traitement à réaliser
String[] cmd = new String[3];
cmd[0] = "cmd.exe" ;
cmd[1] = "/C" ;
cmd[2] = "C:\\testbat\\tache.bat";
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(cmd);
out.println("<FONT color=\"green\"> La t&acirc;che vient d'&ecirc;tre lanc&eacute;e !!!</FONT><br><br><form action=\"lancement.html\"><input type=\"submit\" value=\"Retour\"></form>");
}
%>

Une fois l'opération réalisée, ouvrez un navigateur web à l'adresse suivante :

http://<nom_ou_adresse_IP_du_serveur>:<port>/lancement/lancement.html

Vous devriez obtenir ceci:

Cliquez sur le bouton Lancer la tâche. Vous devriez obtenir la fenêtre suivante:

Sur le serveur, dans le dossier C:\testbat le fichier log.txt a été créé ou modifié avec insertion de la date et de l'heure du système.

Libre à vous d'améliorer les scripts par la suite afin par exemple de demander à l'utilisateur de saisir un identifiant et de mot de passe pour avoir accès au lancement de la tâche.