We use SOAP::Lite (both server and client) quite extensively.
Recently we upgraded to 0.69 (currently the latest version I think) and things went wrong.
Except of some inconsistencies in our code, which were tolerated by the old version of SOAP::Lite,
I found two quite serious errors:
Nevertheless we still use 0.69, even for document/literal SOAP.
To have full control over the content of soap body element
I often use $soap->call with the method argument
being a XML (XML::LibXML) document (complete content of the soap:Body element).
my $som = $soap->call(soap_xml_data $xml_doc);
On the server site I use similar approach to return the complete content
of soap:Body element.
sub dispatched_method {
....
return soap_response_body(soap_xml_data($xml_doc));
}
This approach contains an ugly hack, which prevents SOAP::Lite serializer
to wrap the returned value by a response element.
|