我有一个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,但我试着看看它有什么问题,但无法做任何事情。特别是因为这个恼人的模糊错误信息,这并没有真正的帮助。
谢谢!
答案 0 :(得分:1)
我认为我通过将包含SoapServer的WebService类分成2个不同的类来很好地修复它。
仅包含具有该功能的类,另一个包含WebServer且仅具有对该类的引用。
这样我就可以导入带有这些函数的类,而无需导入SoapServer并触发handle()函数。