微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决PHP-SoapServer-> Handle之后的SOAP-ENV:ClientBad请求-帮助

| 我有一个运行了很长时间的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太在意了,并且以某种方式使我的WebService搞砸了,但是我尝试查看它的问题是什么,但无法解决任何问题。尤其是由于这种令人讨厌的模糊错误消息,这并没有真正的帮助。 谢谢!     

解决方法

        我认为通过将包含SoapServer的WebService类分为2个不同的类来很好地解决了该问题。 一个仅包含具有功能的类,另一个仅包含WebServer并且仅具有对该类的引用。 这样,我可以导入带有函数的类,而无需同时导入SoapServer和触发handle()函数。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。