如何解决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 举报,一经查实,本站将立刻删除。