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

问题描述 投票:0回答:1

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" inC:\ 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,并以soap_version返回$options一个数组,所以我想它们工作正常。

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

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

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

php laravel soap wsdl soapserver
1个回答
0
投票

我有同样的问题。您解决了吗?

谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.