bonjour a tous,
j'ai un petit soucis avec un bête script Perl utilisant le module SOAP::Lite , script client
et le script "serveur" utilisant le module SOAP::Transport::HTTP;

je suis améne a devoir utiliser SOAP pour faire transiter des données par XML.
Donc, je me dis autant essaier un truc tout simple pour commence et pour voir comment les 2 scripts vont communiquer ensemble via SOAP.

mon script serveur /var/www/cgi-bin/soap_essai/serveur.cgi

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl -w
 
print "Content-type: text/xml\n\n";
use SOAP::Transport::HTTP;
 
SOAP::Transport::HTTP::CGI  
   -> dispatch_to('afficher')    
   -> handle();
 
package afficher;
 
sub affichage{            
    return "zut";    
}
 
sub affiche{                  
return "fonction 2";
 
}
Mon script client /root/Desktop/client.pl

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl -w
use SOAP::Lite;
 
print SOAP::Lite
    ->uri('http://localhost')
        ->proxy('http://localhost/cgi-bin/soap_essai/serveur.cgi')
    ->affiche()
     ->result;
 
print "requete envoiée\n";
lorsque je l'execute voila ce que j'obtien. Je vois mon message SOAP, mais la méthode ne s'execute pas,peut etre le probleme vient d'apache qui serai mal configuré, ou une erreur dans le script

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Could not find MIME::Parser - is MIME::Tools installed? Aborting. at /usr/lib/perl5/vendor_perl/5.8.8/SOAP/Packager.pm line 114.
Status: 500 Internal Server Error
Content-Length: 563
Content-Type: text/xml; charset=utf-8
SOAPServer: SOAP::Lite/Perl/0.710.08
 
<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Denied access to method (affiche) in class (main) at /usr/lib/perl5/vendor_perl/5.8.8/SOAP/Lite.pm line 2678.
</faultstring></soap:Fault></soap:Body></soap:Envelope> at ./client.pl line 4
j'ai déja tenté beaucoup de chose, mais toujours le meme problème la méthode ne veut pas retourné une valeur.
Merci, A+