1

我得到了一个 PHP Web 服务,它运行了很长时间,但是在某个地方它停止了工作,我就是无法让它再次工作。

我得到了一些 php 页面,我在其中所做的只是定义一个带有函数的类,最后我创建了 SoapServer。

看起来像这样 -

class MyClassWS
{
     function .....
     function ....
}
ini_set("soap.wsdl_cache_enabled", "0");
    error_log("Server after ini_set");
    $soapserver = new SoapServer("MyWSDL.wsdl");

    error_log("Server after new SoapServer");
$soapserver->setClass("MyClassWS");
    error_log("Server after setClass");
    //error_log(print_r($soapserver->getFunctions()));

    try
    {
        $soapserver->handle();
    }
    catch(Exception $ex)
    {
        error_log("Exception!".$ex->getMessage());

    }
error_log("Finished Handling",0);

在 $soapserver->handle(); 之后 代码终止,我在我的网页上得到一个模糊的“SOAP-ENV:ClientBad Request”结果。

当我从我的索引页面“require_once”这个页面时会发生这种情况,所以我可以从我的索引页面调用在这个类中定义的函数。

我的猜测是,也许我一直在摆弄我的 WSDL 并且不知何故它搞砸了我的 while WebService,但我尝试查看它有什么问题,但无法解决任何问题。特别是因为这个恼人的模糊错误信息,这并没有真正的帮助。

谢谢!

4

1 回答 1

1

我想我通过将包含 SoapServer 的 WebService 类分成 2 个不同的类来很好地修复它。

一个只包含带有函数的类,另一个包含 WebServer 并且只包含对该类的引用。

这样我就可以导入带有函数的类,而无需导入 SoapServer 并触发 handle() 函数。

于 2011-06-04T08:57:27.683 回答