Lancer un .jar depuis un script cgi perl

Résolu/Fermé
Sydreai63 - 26 avril 2009 à 22:31
 Sydreai63 - 27 avril 2009 à 10:02
Bonjour,

mon problème est que je n'arrive pas à lancer un .jar à partir d'un cgi écrit en perl (apache2), voici le code de mon cgi:

#!/usr/bin/perl

print "content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD><TITLE>Résultats: Sondes créées</TITLE></HEAD>\n";
print "<BODY>\n";
$ENV{QUERY_STRING}=~m/nomorga=(.*?)&idgene=(.*?)&nbrsondes=(.*?)&lngrsondes=(.*?)&sel=(.*?)&an=(.{4})/;
my $idorga=$1;
my $idgene=$2;
my $nbrsondes=$3;
my $lngrsondes=$4;
my $sel=$5;
my $an=$6;
my $arguments=$1." ".$2." ".$3." ".$4." ".$5." ".$6;
my $commande="java -jar \"/home/maroudel/NetBeansProjects/ProjetWS/dist/ProjetWS.jar\"";
my $commargs=$commande." ".$arguments;
print "Voici la ligne de commande pour exec:<br /><br /> $commargs";
print "</BODY>";
system ("java -jar \"/home/maroudel/NetBeansProjects/ProjetWS/dist/ProjetWS.jar\" hsa 10048 8 50 5.0 0.05");

j'obtiens bien la page web avec mes prints, mais rien en se passe d'autre.

Quand je lance la commande "java -jar \"/home/maroudel/NetBeansProjects/ProjetWS/dist/ProjetWS.jar\" hsa 10048 8 50 5.0 0.05" directement dans un terminal, elle fonctionne et m'affiche ma page web avec mes résultats ( codé dans la .jar).

J ai essayé de remplacer system par exec, ce qui n'a rien donné.
J ai ausi essayé de mettre exec("commande") avant mon print "Voici la ligne de commande pour exec:<br /><br /> $commargs";, ce qui a pour effet de tuer le processus et donc de ne rien afficher.

J'aimerais savoir si vous auriez une solution à me soumettre!
Merci
A voir également:

4 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
26 avril 2009 à 22:41
Salut,

Essai
system ("java", "-jar", "/home/maroudel/NetBeansProjects/ProjetWS/dist/ProjetWS.jar", "hsa 10048 8 50 5.0 0.05"); 
En fait system prends en argument une liste.
Il faut que tu sépare les éléments de la commande
system("nom commande", "option1", "option2",...., "arg1", "arg2",...);


0
Meme probleme, j ai toujours une page qui s'affiche avec mes prints, mais rien d'autre ne se passe.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
26 avril 2009 à 22:55
Re,

Ben, tu n'as que faire des tests, tout en tenir compte de ça

<ital>En fait system prends en argument une liste.
Il faut que tu sépare les éléments de la commande

system("nom commande", "option1", "option2",...., "arg1", "arg2",...);/ital>
0
Ha, j'ai compris!
En fait, j'avais bien testé la ligne de commande que tu m'avais donné, le seul truc, c'est que "hsa 10048... sont aussi des arguments, il m a suffit de suivre ton conseil et de les mettre chacun entre quote!
Merci bien!
0