基本的PHP / SOAP错误,无法调试

I'm currently having a really frustrating time with some really simple SOAP / PHP at the moment. I've spent about a week trying EVERYTHING I can think of, on multiple different servers with different versions of PHP and they all still throw the same error. Here's the code:

function test() {
    $client = new SoapClient('http://xxx', array("login" => "sandbox", "password" => "password"));

    print_r($client->__getFunctions());

    $ap_param = array();

    // it dies here. CheckServiceAvailable is a valid function returned in __getFunctions()
    $result = $client->__soapcall('CheckServiceAvailable', $ap_param);

    if (is_soap_fault($result)) {
        trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})", E_USER_ERROR);
    }
}

It faults before the error catching can capture anything. Apache logs show the same fault as below:

Fatal error: Uncaught SoapFault exception: [s:Processing error] in C:\soap.php:13 Stack trace: #0 C:\soap.php(13): SoapClient->__soapCall('CheckServiceAva...', Array) #1 C:\soap.php(23): test() #2 {main} thrown in C:\soap.php on line 13

Without being able to catch the fault I'm totally stuck as to what to do. I don't really want to try nusoap.

Any ideas?

use:

try
{
  $result = $client->__soapcall('CheckServiceAvailable', $ap_param);
}
catch (SoapFault $e)
{
  echo "Cannot call method CheckServiceAvailable: {$e->getMessage()}";
}