pbs webservice .net avec soap::lite

pbs webservice .net avec soap::lite - Perl - Programmation

Marsh Posté le 11-01-2008 à 16:35:27    

Bonjour , j'ai écris un webservice avec visual studio 2008 en C#, depuis un navigateur le Web service fonctionne parfaitement.
Hors depuis mon application en PERL, bien que j'arrive effectivement à l'appeller (et a récuperer une reponse), je n'arrive pas a lui passer les paramettres, ceux-ci restent toujours desperement à la valeur NULL.
 
Mon code PERL

Code :
  1. #!c:/Perl/bin/perl
  2. #
  3. # Appel des librairies
  4. #
  5. use DBI();
  6. use CGI;
  7. use SOAP::Lite;
  8. $service = SOAP::Lite
  9.  ->uri('http://localhost')
  10.  ->proxy("http://localhost:2897/cpam.asmx" )
  11.  ->service('http://localhost:2897/cpam.asmx?WSDL');
  12. $test = "test";
  13. print "test retour : ". $service->Test($test) ."<br/>";


 
Appelle cette méthode en c# :
 

Code :
  1. [WebMethod]
  2.         public string Test(string test)
  3.         {
  4.             if (string.IsNullOrEmpty(test))
  5.             {
  6.                 test = "vide";
  7.             }
  8.             return test;
  9.         }


 
Me retourne désesperement vide.

Reply

Marsh Posté le 11-01-2008 à 16:35:27   

Reply

Marsh Posté le 07-04-2008 à 17:04:33    

Tu as réussi finalement?
Je suis moi aussi "bloqué" avec mon code perl et mon web service.
 
J'ai suivi un tutoriel pour implémenter un web service en java, ca se fait comme cela :
 

Code :
  1. use SOAP::Lite;
  2. $service = SOAP::Lite -> uri('urn:QuotationService')
  3.     -> proxy('http://10.45.X.X:8080/soap/servlet/rpcrouter');
  4. $result = $service -> getAllQuotations() -> result();
  5. $i = -1;
  6. while ( ref $result->[++$i] )
  7. {
  8. print "$result->[$i]{'text'} ($result->[$i]{'author'})\n";
  9. }


 
-> ca marche parfaitement bien!!!
 
Par contre, je ne vois pas comment implémenter mon web service en C#. Voici un extrait du code, pour simplifier au maximum :
 

Code :
  1. namespace CalcService
  2. {
  3.     [WebService(Namespace = "http://localhost/" )]
  4.     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  5.     [ToolboxItem(false)]
  6.     public class CalcService : System.Web.Services.WebService
  7.     {
  8.         [WebMethod (Description="WebMedhod Hello World" )]
  9.         public string HelloWorld()
  10.         {
  11.             return "Hello World";
  12.         }
  13.     }
  14. }


 
J'essaie de reprendre l'implémentation de bleuerouge, pour mon webservice, dans le fichier perl :
 

Code :
  1. use SOAP::Lite;
  2. $service = SOAP::Lite
  3.  ->uri('http://10.45.X.X')
  4.  ->proxy('http://10.45.X.X:3114/CalcService.asmx')
  5.  ->service('http://10.45.X.X:3114/CalcService.asmx?op=HelloWorld');


 
-> j'obtiens le message d'erreur suivant :
 

Citation :

Service description 'http://10.45.X.X:3114/CalcService.asmx?op=HelloWorld' can't be loaded: 500 Can't connect to 10.45.X.X:3114 (connect: Connection refused)


 
Si j'enleve la ligne en gras, je n'ai plus de message d'erreur. C'est donc au niveau de l'implémentation du service en lui même que je bloque...


Message édité par Revolution67 le 07-04-2008 à 17:36:08
Reply

Marsh Posté le 08-04-2008 à 14:50:22    

Ce problème est en parti corriger, il s'agissait d'un problème sous IIS pour le Web Service.
 
Cependant, je suis maintenant confronté à un autre problème.
Mon Web Service est stocké sur un serveur web, et disponible via IIS à l'adresse :
http://monserveur.test.fr:901/CalcService.asmx
 
Mon script perl est :

Code :
  1. use SOAP::Lite;
  2. my $service = SOAP::Lite
  3. ->uri('http://monserveur.test.fr/')
  4. ->proxy('http://monserveur.test.fr:901/CalcService.asmx')
  5. ->service('http://monserveur.test.fr:901/CalcService.asmx?WSDL');
  6. print "retourne :". $service->HelloWorld() ."\n";


 
Quand je teste ce script sur mon poste local sous windows, j'obtiens bien :

Citation :

retourne :Hello World


 
Cependant, lorsque je le teste sur un deuxième serveur sous linux, il ne semble pas accéder correctement au Web Service, car j'ai seulement :

Citation :

retourne :


 
J'ai testé avec plusieurs ports, et cela ne change rien...
De même je pouvais accéder normalement à un Web Service Java depuis le serveur Linux...
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed