Rob*_*ijn 7 php fault soapserver
所以错误是:
PHP Fatal error: Procedure 'sup:set_availability' not present in XMLSoapServer.php
我在开发环境(MAMP)上收到此错误.
这是由无效的XML字符串引起的,其中'sup'命名空间未定义:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SOAP-ENV:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema"
xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<sup:set_availability>
<SetAvailability>
...
</SetAvailability>
</sup:set_availability>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Run Code Online (Sandbox Code Playgroud)
(这是一个外部请求,所以我不能只是去纠正来源 - 我能做到,但至少不能在短时间内通知.)
问题是我有两个处理相同请求的服务器.没有错误.所以我的任务是找出原因:)
一些细节:
到目前为止我检查过的事情:
服务器1的版本为2.6.26,服务器2的版本为2.7.7 - 请求的工作方式就像一个魅力我的开发环境有lixml2版本2.8.0 - 并且确实抛出了致命的错误.
我的猜测是(或者是)libxml2导致错误 - 但是我找不到关于这个主题的任何资源 - 我也没有成功将我的本地libxml2版本降级到2.6或2.7.
那么......对此有何看法?
小智 2
我不知道问题是什么......但由于本机 PHP SoapClient 对我来说总是有点“不透明”,所以我喜欢使用Dklab_SoapClient 库。
它使用 Curl 来检索 Soap 数据,并且比本机 PHP 类灵活得多。另外,如果您也需要,您甚至可以扩展它以添加您自己的功能:)我猜它会解决您的问题。
但是,如果您不想使用外部库,我不知道可能会导致这种情况的原因......