![]() |
Calling .Net web service using a PERL client.
I need to call a .Net web service that takes an array or object as a
parameter from a PERL client. I have been trying to use the PERL SOAP::Lite package to do this without success. I can call one that takes a simple type, such as int or string, but not an array or object. Please help!!! My code that I have written to call the web service and the SOAP packets that get sent and received are below. It seems like no matter what I do I cannot get it to recognize the array that I pass. Please CC my email address with any responses. My address is as follows with the $# removed: J$#im.Fo$#wl$#er@E$#D$#S$#.c$#o$#m Thanks in advance for any assistance. use SOAP::Lite; my @web; @web[0] = '234234'; @web[1] = 'Test1'; @web[2] = '3454545'; @web[3] = 'Test2'; my $s = SOAP::Lite -> uri('EDS.Galileo/') -> proxy('http://testedsapps.weyer.com/Galileo/Galileo.asmx') -> on_action(sub{sprintf '%s%s', @_ }) -> on_debug(sub{print@_}) ; ; $result = $s->UpdateIncident(SOAP::Data->name('TicketValues')->value(SOAP::Data->value (\@web))); unless ($result->fault) { if (length ($result->result()) == 0) { print "result = ".$result->result()."\n"; } } else { print "error ".$result->faultstring."\n"; unless ($result->fault) { if (length ($result->result()) == 0) { print "result = ".$result->result()."\n"; } } else { print "error ".$result->faultstring."\n"; } <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <namesp1:UpdateIncident xmlns:namesp1="EDS.Galileo/"> <TicketValues xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[4]"> <item xsi:type="xsd:string">"600100024"</item> <item xsi:type="xsd:string">"GFS000999"</item> <item xsi:type="xsd:string">"536871002"</item> <item xsi:type="xsd:string">"1092585900"</item> </TicketValues> </namesp1:UpdateIncident> </SOAP-ENV:Body> </SOAP-ENV:Envelope> HTTP/1.1 500 (Internal Server Error) Internal Server Error. Cache-Control: private Connection: close Date: Thu, 19 Aug 2004 14:07:57 GMT Server: Microsoft-IIS/5.0 Content-Length: 732 Content-Type: text/xml; charset=utf-8 Client-Date: Thu, 19 Aug 2004 14:08:41 GMT Client-Peer: 10.31.240.10:80 Client-Response-Num: 1 MicrosoftOfficeWebServer: 5.0_Pub X-AspNet-Version: 1.1.4322 X-Powered-By: ASP.NET <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <soap:Fault> <faultcode>soap:Server</faultcode> <faultstring>System.Web.Services.Protocols.SoapExc eption: Server was unable to process request. ---> System.NullReferenceException: Object reference not set to an instance of an object. at EDS.Galileo.Galileo.UpdateIncident(String[] TicketValues) in c:\inetpub\wwwroot\galileo\galileo.asmx.cs:line 484 --- End of inner exception stack trace ---</faultstring> <detail /> </soap:Fault> </soap:Body> </soap:Envelope> |
RE: Calling .Net web service using a PERL client.
Hello,
I am not a expert on PERL. Here are some document I found so far, you may take a look to see if they can help: How to Call a .NET-based Web Service Using the SOAP::Lite Perl Library http://msdn.microsoft.com/library/de...us/dnsoap/html /soapliteperl.asp SOAP::Lite Client HOWTO http://soapenv.org/article.pl?sid=02...29&mode=thread Since this group focus on .NET web service, it may be hard to find one who is familar with PERL client. I suggest you may also post this question on a PERL related newsgroup to get more information. Luke |
Re: Calling .Net web service using a PERL client.
This service
http://www.xmethods.net/ve2/ViewList...6-DD728CC865DE includes a perl client that retrieves an array from a C# ASMX service. "JTrigger" <jtrigger@nospam.nospam> wrote in message news:OQ7XhgjhEHA.1964@tk2msftngp13.phx.gbl... > I need to call a .Net web service that takes an array or object as a > parameter from a PERL client. I have been trying to use the PERL SOAP::Lite > package to do this without success. I can call one that takes a simple > type, such as int or string, but not an array or object. Please help!!! My > code that I have written to call the web service and the SOAP packets that > get sent and received are below. It seems like no matter what I do I cannot > get it to recognize the array that I pass. Please CC my email address with > any responses. My address is as follows with the $# removed: > J$#im.Fo$#wl$#er@E$#D$#S$#.c$#o$#m > Thanks in advance for any assistance. > > use SOAP::Lite; > > my @web; > @web[0] = '234234'; > @web[1] = 'Test1'; > @web[2] = '3454545'; > @web[3] = 'Test2'; > > my $s = SOAP::Lite > -> uri('EDS.Galileo/') > -> proxy('http://testedsapps.weyer.com/Galileo/Galileo.asmx') > -> on_action(sub{sprintf '%s%s', @_ }) > -> on_debug(sub{print@_}) ; > ; > $result = > $s->UpdateIncident(SOAP::Data->name('TicketValues')->value(SOAP::Data->value > (\@web))); > > unless ($result->fault) { > if (length ($result->result()) == 0) > { > print "result = ".$result->result()."\n"; > } > > } else { > > print "error ".$result->faultstring."\n"; > > > unless ($result->fault) { > if (length ($result->result()) == 0) > { > print "result = ".$result->result()."\n"; > } > > } else { > > print "error ".$result->faultstring."\n"; > } > > <?xml version="1.0" encoding="UTF-8"?> > <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" > xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/1999/XMLSchema" > SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> > <SOAP-ENV:Body> > <namesp1:UpdateIncident xmlns:namesp1="EDS.Galileo/"> > <TicketValues xsi:type="SOAP-ENC:Array" > SOAP-ENC:arrayType="xsd:string[4]"> > <item xsi:type="xsd:string">"600100024"</item> > <item xsi:type="xsd:string">"GFS000999"</item> > <item xsi:type="xsd:string">"536871002"</item> > <item xsi:type="xsd:string">"1092585900"</item> > </TicketValues> > </namesp1:UpdateIncident> > </SOAP-ENV:Body> > </SOAP-ENV:Envelope> > HTTP/1.1 500 (Internal Server Error) Internal Server Error. > Cache-Control: private > Connection: close > Date: Thu, 19 Aug 2004 14:07:57 GMT > Server: Microsoft-IIS/5.0 > Content-Length: 732 > Content-Type: text/xml; charset=utf-8 > Client-Date: Thu, 19 Aug 2004 14:08:41 GMT > Client-Peer: 10.31.240.10:80 > Client-Response-Num: 1 > MicrosoftOfficeWebServer: 5.0_Pub > X-AspNet-Version: 1.1.4322 > X-Powered-By: ASP.NET > > <?xml version="1.0" encoding="utf-8"?> > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <soap:Body> > <soap:Fault> > <faultcode>soap:Server</faultcode> > <faultstring>System.Web.Services.Protocols.SoapExc eption: Server was > unable to process request. ---> System.NullReferenceException: Object > reference not set to an instance of an object. > at EDS.Galileo.Galileo.UpdateIncident(String[] TicketValues) in > c:\inetpub\wwwroot\galileo\galileo.asmx.cs:line 484 > --- End of inner exception stack trace ---</faultstring> > <detail /> > </soap:Fault> > </soap:Body> > </soap:Envelope> > > |
| All times are GMT. The time now is 08:05 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.