Bonjour,

malgré mes recherches, je ne trouve pas de solution au déploiement 'CGI' (dans Tomcat) de l'application "calc" des samples livrés avec gSoap 2.7.14.

Voici le résultat:
D:\gsoap_2.7.14\gsoap-2.7\gsoap\samples\calc>calcclient add 2 3
Error 14 fault: SOAP-ENV:Client [no subcode]
"Data required for operation"
Detail: [no detail]

Pour information ce que j'ai fait:
[1] activer CGI dans Tomcat
[a] decommenter dans conf/web.xml le bloc <servlet-name>cgi</servlet-name>
[b] decommenter le bloc de servlet mapping pour cgi (débute par) <servlet-mapping>
[c] dans /server/lib renommer le fichier servlets-cgi.renametojar par servlets-cgi.jar
[d] creer le fichier "webapps\mycgi\WEB-INF\cgi" et y créer un fichier time.cgi avec le code suivant:
#!/usr/bin/perl

print "Content-type: text/html\n\n";

$now = localtime();
print "<h1>It is $now</h1>";

L'appel de http://localhost:8080/mycgi/cgi-bin/time.cgi devrait fournir une réponse type: It is Thu Nov 5 13:54:18 2009

-> cool, cgi fonctionne !

[2] Compiler le sample "calc" de GSoap.

[a] adapter le sample à son propre environnement
Pour ce faire, j'ai tout d'abord remplacé dans le fichier calc.h les lignes:
//gsoap ns service namespace: http://websrv.cs.fsu.edu/~engelen/calc.wsdl
//gsoap ns service location: http://websrv.cs.fsu.edu/~engelen/calcserver.cgi

par

//gsoap ns service namespace: http://localhost:8080/mycgi/calc.wsdl
//gsoap ns service location: http://localhost:8080/mycgi/cgi-bin/calcserver.cgi

[b] créer un .bat qui lance la création des fichiers et la compil:
soapcpp2 -L -x -c calc.h
pause
g++ -DDEBUG -o calcclient calcclient.c stdsoap2.c soapC.c soapClient.c -lws2_32
pause
g++ -DDEBUG -o calcserver.cgi calcserver.c stdsoap2.c soapC.c soapServer.c -lws2_32

[c] copier calc.wsdl vers le répertoire mrentionné dans [2][a] et faire de même avec calcserver.cgi.

VOILA, on devrait pouvoir lancer le client sans problème, seulement voilà ... il manque encore quelque chose, le WSDL dans le bon répertoire (???) ou je ne sais, je ne trouve pas. Si quelqu'un avait une idée ce serait TIP-TOP.

Juste pour autre info, lorsque j'appelle directement "http://localhost:8080/mycgi/cgi-bin/calcserver.cgi" je recois une page blanche dans mon navigateur et non une page avec une enveloppe SOAP du style:

<SOAP-ENV:Envelope>
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>End of file or no input</faultstring>
<detail/>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

... donc mon cgi ne veut pas se lancer.

Mon Tomcat est une version 5.5.23, est-ce là un problème d'activation du langage C (Perl par défaut) dans la conf de Tomcat ? Si oui, comment ajouter ce langage ?

Merci pour tout aide.