Subject: | SOAP::WSDL: call() broken by 2.00_12. |
SOAP::WSDL's call() method does not pass $methoInfo structure but the
$method name when the time comes to perform the call. This results in
heuristic derivation of soapAction through a join "/", $ns, $method,
which breaks when $ns already has / at end, resulting in an soapaciton
like foo//bar, which is rejected by server that declared no such thing.
The fix appears to be to pass the $methodInfo structure instead of the
$method name. Specifically:
$client->call($method_info_of{$ident}{$method}, $content);
instead of:
$client->call($method, $content)
The $methodinfo holds the correct soapAction declared by WSDL.