PHP - SOAP-ENV:SoapServer之后的ClientBad请求 - > Handle() - 帮助

时间:2011-05-27 17:34:26

标签: php web-services wsdl soapserver

我有一个PHP网络服务已经运行了很长时间,但在某个地方很长一段时间它停止工作,我只是不能让它再次工作。

我有一些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过多地摆弄它,并且它在某种程度上搞砸了我的WebService,但我试着看看它有什么问题,但无法做任何事情。特别是因为这个恼人的模糊错误信息,这并没有真正的帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

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

仅包含具有该功能的类,另一个包含WebServer且仅具有对该类的引用。

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