Skip Menu |

This queue is for tickets about the SOAP-Lite CPAN distribution.

Report information
The Basics
Id: 17104
Status: resolved
Priority: 0/
Queue: SOAP-Lite

People
Owner: Nobody in particular
Requestors:
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: (no value)



Subject: possible error in parsing
perl 5.8.6, freebsd, soap::lite $VERSION = '0.66.1'; ---- sample code ---- server via lwp client use SOAP::Lite +trace => ['all'], +autodispatch => uri => 'SVMediaSOAP', proxy => 'http://localhost:65530'; $media = SVMediaSOAP->login(login=>'qq',password=>'qq'); $media->SOAP::prj_add(); foreach ( keys %{$media} ){ print "$_ >> $media->{$_}\n"; } /client ---- dump login response <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:namesp1="http://namespaces.soaplite.com/perl" 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><loginResponse xmlns="/SVMediaSOAP"><SVMediaSOAP xsi:type="namesp1:SVMediaSOAP"><tpua_id xsi:type="xsd:int">2</tpua_id><check xsi:type="xsd:string">5b638103b1ecca628f0d2d7b0f8d9d69</check><sv_error xsi:type="xsd:int">123</sv_error></SVMediaSOAP></loginResponse></soap:Body></soap:Envelope> SOAP::Deserializer::deserialize: () SOAP::Parser::decode: () SOAP::SOM::new: () tpua_id >> 2 check >> 5b638103b1ecca628f0d2d7b0f8d9d69 sv_error >> 123 all done, well.. prj_add, request SOAPAction: "/SVMediaSOAP#prj_add" <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:namesp1="SVMediaSOAP" xmlns:namesp9="http://namespaces.soaplite.com/perl" xmlns:namesp6="/SVMediaSOAP" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><namesp6:prj_add><SVMediaSOAP xsi:type="namesp9:SVMediaSOAP"><tpua_id xsi:type="xsd:int">2</tpua_id><check xsi:type="xsd:string">5b638103b1ecca628f0d2d7b0f8d9d69</check><sv_error xsi:type="xsd:int">123</sv_error></SVMediaSOAP></namesp6:prj_add></soap:Body></soap:Envelope> all correct. answer with change key 'sv_error' SOAP::Transport::HTTP::Client::send_receive: HTTP::Response=HASH(0x84dd994) SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 200 OK Date: Tue, 17 Jan 2006 07:20:19 GMT Server: libwww-perl-daemon/1.36 Content-Length: 841 Content-Type: text/xml Client-Date: Tue, 17 Jan 2006 07:31:42 GMT Client-Peer: 81.176.78.66:65530 Client-Response-Num: 1 SOAPServer: SOAP::Lite/Perl/0.66 <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:namesp1="http://namespaces.soaplite.com/perl" 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:Header><namesp4:SVMediaSOAP xsi:type="namesp1:SVMediaSOAP" xmlns:namesp4="http://namespaces.soaplite.com/header"><tpua_id xsi:type="xsd:int">2</tpua_id><check xsi:type="xsd:string">5b638103b1ecca628f0d2d7b0f8d9d69</check><error xsi:type="xsd:string" /><sv_error xsi:type="xsd:string">Project name must be specified</sv_error></namesp4:SVMediaSOAP></soap:Header><soap:Body><prj_addResponse xmlns="/SVMediaSOAP" xsi:nil="true" /></soap:Body></soap:Envelope> SOAP::Deserializer::deserialize: () SOAP::Parser::decode: () SOAP::SOM::new: () SOAP::SOM::DESTROY: () dump "object" tpua_id >> 2 check >> 5b638103b1ecca628f0d2d7b0f8d9d69 sv_error >> 123 key unchanged.. thats correct?
From: LzN
On Tue Jan 17 07:55:49 2006, guest wrote: Show quoted text
> perl 5.8.6, freebsd, soap::lite $VERSION = '0.66.1';
soap::lite 0.67 # diff -u lite.pm.safe Lite.pm --- lite.pm.safe Sat Jan 28 00:31:57 2006 +++ Lite.pm Thu Feb 9 16:56:55 2006 @@ -3395,7 +3395,7 @@ return unless $response; # nothing to do for one-ways # little bit tricky part that binds in/out parameters - if (UNIVERSAL::isa($result => 'SOAPSOM') && + if (UNIVERSAL::isa($result => 'SOAP::SOM') && ($result->paramsout || $result->headers) && $serializer->signature) { my $num = 0;
Already fixed in CVS, duplicate of a sf.net bug. Will be in next release. Thanks, Martin