Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1289 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  pbs webservice .net avec soap::lite

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pbs webservice .net avec soap::lite

n°1669794
bleuerouge
Posté le 11-01-2008 à 16:35:27  profilanswer
 

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.

mood
Publicité
Posté le 11-01-2008 à 16:35:27  profilanswer
 

n°1713941
Revolution​67
Posté le 07-04-2008 à 17:04:33  profilanswer
 

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
n°1714397
Revolution​67
Posté le 08-04-2008 à 14:50:22  profilanswer
 

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...
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  pbs webservice .net avec soap::lite

 

Sujets relatifs
C#/SOAP/PHP5 Probleme webserviceMIME::LITE et pieces jointes
Validation envelope SOAP à partir du XSDWebservice et xml
AJAX webservice et javascriptProbleme Webservice serialisation AXIS --> Client .Net C#
génerer un WebService avec un wsdlQuestion PHP, PEAR SOAP, Dotnet et sérialisation
[JAVA] Communication SSL entre webservice et client 
Plus de sujets relatifs à : pbs webservice .net avec soap::lite


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR