[Xml-compile] SOAP RPC literal with no parameters (empty Body)

Mark Overmeer mark at overmeer.net
Wed Jun 16 15:01:30 GMT 2010


* Oliver Gorwits (oliver.gorwits at oucs.ox.ac.uk) [100616 13:28]:
> When calling an operation which has no parameters, in what I think
> should be SOAP RPC Literal mode, the wrapper element inside the Body
> is not there in the request, so the server complains that "Empty
> SOAP body with no child element not supported for RPC".

Can you try this:
In XML/Compile/SOAP.pm

 sub _writer_rpc_hook($$$$$)
 {  my ($self, $type, $procedure, $params, $faults) = @_;
    my @params = @$params;
    my @faults = @$faults;
    ...
        my $node = $doc->createElement($tag);
 -      if(@pchilds)
 -      {    my $proc = $doc->createElement($proc);
 -           $proc->appendChild($_) for @pchilds;
 -           $node->appendChild($proc);
 -      }
 +      my $proc = $doc->createElement($proc);
 +      $proc->appendChild($_) for @pchilds;
 +      $node->appendChild($proc);
        $node->appendChild($_) for @fchilds;
        $node;
     };

   +{ type => $type, replace => $code };
 }

-- 
Regards,

               MarkOv

------------------------------------------------------------------------
       Mark Overmeer MSc                                MARKOV Solutions
       Mark at Overmeer.net                          solutions at overmeer.net
http://Mark.Overmeer.net                   http://solutions.overmeer.net




More information about the Xml-compile mailing list