Skip Menu |

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

Report information
The Basics
Id: 37068
Status: new
Priority: 0/
Queue: SOAP-Lite

People
Owner: Nobody in particular
Requestors: jeffy34 [...] gmail.com
Cc:
AdminCc:

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



Subject: SOAP::Serializer->{_use_default_ns} clobbered by _call()
Distribution: SOAP-Lite-0.710.07 Perl version: 5.8.7 When a call to astubbed SOAP method defined in a WSDL is made, the _call() method is invoked (Lite.pm line 3235). In that method, ns() is invoked (Lite.pm line 3257). Inside of ns(), the _use_default_ns attribute is unconditionally set to 0 (Lite.pm line 862), overwriting the default value of 1 as well as any value that might have been explicitly set with the default_ns() method. Because _use_default_ns is always going to be false, I'm seeing incorrect namespaces being attached to the body action element of my SOAP requests. Specifically, Lite.pm line 1519 is never evaluated to true, and the body isn't set up explicitly as a SOAP::Data element with the xmlns attr correspdonding to _ns_uri. An example program exhibiting this problem with SOAP::Lite 0.710.07 is: http://code.google.com/p/adwords-api-perl-samples/source/browse/trunk/src/get_all_ad_groups.pl The solution I found to this is commenting out Lite.pm line 862: # $self->{'_use_default_ns'} = 0; That seems to suit my needs, but it obviously may have side effects for other SOAP services. Could some approach that either removes or only conditionally executes that line of code be added to the official release?