Loading ...
Sorry, an error occurred while loading the content.

SOAP::Lite 0.709 changed (broke) array encoding?

Expand Messages
  • jcroall
    Hi All, I have some code that was working perfectly with SOAP::Lite 0.708, but fails with everything starting from 0.708. The problem happens when an array is
    Message 1 of 1 , Apr 29 2:14 PM
    • 0 Attachment
      Hi All,

      I have some code that was working perfectly with SOAP::Lite 0.708, but fails with everything starting from 0.708.

      The problem happens when an array is encoded. The following:

      sub _soap_args {
      my ($hash) = @_;
      SOAP::Data->value(map { SOAP::Data->name( $_ => $hash->{$_}) } keys(%{$hash}));
      }

      my $sourceStream = {
      description => "Source code stream",
      language => "CXX",
      name => "Project 40",
      type => "SOURCE"
      };
      my $staticStream = {
      description => "Source code stream",
      language => "CXX",
      name => "Project 40",
      type => "STATIC"
      };
      description => "Project 40 Description",
      name => "Project 40",
      streams => [$sourceStream, $staticStream],
      foo => {
      bar => 12
      }
      };
      print $soap->createProject(
      _soap_args({projectSpec => $project}),
      $security->value(\$userToken))->result;

      Used to work by adding names to the top level, and then SOAP::Lite would correctly add names to the sub-elements. But now with .709 and above my array elements are ending up within gensym tags.

      I'm not sure how to handle this. From what I can tell this is a different problem than the other gensym issues I've seen here.

      Suggestions appreciated -- I've hit a wall trying to migrate to SOAP::WSDL, but now I have to tell our users they have to install an old SOAP::Lite for our sutff to work!

      Thanks,

      - James
    Your message has been successfully submitted and would be delivered to recipients shortly.