[SOAP::Lite] Mauvais arguments d'une fonction ?
Bonjour à tous,
Je code actuellement un client utilisant un Web Service avec SOAP (j'utilise donc le package SOAP::Lite). J'ai déployé le service côté serveur en local avec Axis. Rien de bien problématique, et le service de base d'Axis (j'ai nommé Version) s'appelle de la manière suivante chez moi :
Code:
1 2 3 4 5
| # Connexion pour essai
$ws = SOAP::Lite
-> proxy('http://localhost:9000/axis/services/')
-> service('http://localhost:9000/axis/services/Version?wsdl');
print $ws -> getVersion(), "\n"; |
Ceci fonctionne et me renvoie :
Citation:
Apache Axis version: 1.4
Built on Jan 18, 2006 (05:05:47 CET)
Nickel !
Je veux donc utiliser mon webservice à moi, en y faisant appel de la même manière :
Code:
1 2 3 4 5 6 7 8 9 10 11
| my $proxy = 'http://localhost:8080/axis/services/';
my $service = 'http://localhost:8080/axis/services/mon_service?wsdl';
# Recuperation du wsdl du service :
print "Connecting to web service...";
$ws = SOAP::Lite
-> proxy($proxy)
-> service($service);
print "..";
# Connexion au web service proprement dit :
$uid = $ws -> connect('mon_login','mon_passwd');
print "..\nuid de l'API : $uid\n"; |
À l'exécution, je récupère bien le wsdl (les 5 premiers points de suspension sont affichés), puis à l'appel de la méthode connect on me renvoie l'erreur :
Citation:
404 Not Found at /home/a_po/mon_chemin/bin/../lib/libMonApi.pm line 74
Qu'en pensez-vous ? L'appel à la même fonction depuis mon navigateur web fonctionne et nostre Firefox chéri nous renvoie un beau XML... J'avoue que je ne comprends pas.
Cela fonctionne notamment si je fais dans le navigateur :
Code:
http://localhost:9000/axis/services/arcsys?method=connect&login=arcsys42super&password=infotel0
Étrange non ? Le chemin est sensé exister, et je récupère bien le wsdl... ^^
Merci d'avance pour votre aide !