SoapServer无法在Zoap软件包上加载生成的wsdl文件

时间:2019-07-04 16:38:53

标签: php laravel soap wsdl soapserver

laravel /框架:“ 5.6” PHP 7.3.5

我正在使用Zoap软件包制作Soap Server API,当我尝试通过ngrok访问Laravel Application(本地)上的端点时(这不是问题),我遇到了以下错误:

  

PHP警告:   SoapServer :: SoapServer(http://7184fa0e.eu.ngrok.io/zoap/demo/server?wsdl):   无法打开流:HTTP请求失败!在   C:\ something \ something \ something \ something \ something \ something \ vendor \ zendframework \ zend-soap \ src \ Server.php   在线915 [2019年7月4日星期四11:06:11] PHP警告:   SoapServer :: SoapServer():I / O警告:无法加载外部实体   “ http://7184fa0e.eu.ngrok.io/zoap/demo/server?wsdl"在   C:\ something \ something \ something \ something \ something \ something \ vendor \ zendframework \ zend-soap \ src \ Server.php   在线915上[2019年7月4日星期四11:06:11] PHP致命错误:SOAP错误:   解析WSDL:无法从中加载   'http://7184fa0e.eu.ngrok.io/zoap/demo/server?wsdl':加载失败   外部实体“ http://7184fa0e.eu.ngrok.io/zoap/demo/server?wsdl

我正在尝试调试以发现发生了什么,据我所知,这可能是一个无限循环。如果我向/zoap/demo/server?wsdl发出请求,它将返回wsdl罚款,尽管如果我向/zoap/demo/server发出请求,它将被加载60秒然后返回

  

PHP致命错误:最长执行时间超过60秒

阻止zoap/demo/server?wsdl端点。

我跟踪了代码以找到确切的循环发生位置,好像在这里: $server = new SoapServer($this->wsdl, $options);Server.php文件,getSoap功能。 $this->wsdl返回的wsdl URL为字符串,而$options返回的带有soap_version的数组,所以我想它们工作正常。

出于好奇,我尝试将public function server($key)中的ZoapController拆成两半,以在另一条路径上获取wsdl并解决了无限循环。不过,我最终得到了一个空的XML文件。

我没有主意,如果有人可以找我,我将不胜感激。如果需要,请提供其他信息。

预期结果应该是获取相应动作的xml文件。

0 个答案:

没有答案