加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – SoapServer,handle()上的错误 – 未设置过程

发布时间:2020-12-13 17:55:09 所属栏目:PHP教程 来源:网络整理
导读:所以错误是: PHP致命错误:XMLSoapServer.php中不存在过程’sup:set_availability’ 我在开发环境(MAMP)上收到此错误. 这是由无效的XML字符串引起的,其中’sup’命名空间未定义: ?xml version="1.0" encoding="UTF-8" standalone="no"?SOAP-ENV:Envelope
所以错误是:

PHP致命错误:XMLSoapServer.php中不存在过程’sup:set_availability’

我在开发环境(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>

(这是一个外部请求,所以我不能只是去纠正来源 – 我能做到,但至少不能在短时间内通知.)

问题是我有两个处理相同请求的服务器.没有错误.所以我的任务是找出原因:)

一些细节:

>服务器1:php 5.3.2
>服务器2:php 5.4
>开发:php 5.4

到目前为止我检查过的事情:

>代码是相同的svn-checkout
>没有隐藏的开发或仅限生产设置
> apache config是一样的
>禁用wsdl缓存,清除缓存的wsdl
> php.ini设置是相同的,libxml2除外:

服务器1的版本为2.6.26,服务器2的版本为2.7.7 – 请求的工作方式就像魅力一样
我的开发环境有lixml2版本2.8.0 – 并且确实抛出致命错误.

我的猜测是(或者是)libxml2导致错误 – 但是我找不到关于这个主题的任何资源 – 我也没有成功将我的本地libxml2版本降级到2.6或2.7.

那么……对此有何看法?

我不知道问题是什么……但由于本机PHP SoapClient对我来说似乎总是有点“不透明”,我喜欢使用 Dklab_SoapClient library.

它使用Curl来检索Soap数据,它比原生PHP类灵活得多.
另外,如果你需要的话,你甚至可以扩展它以添加你自己的功能:)
我猜它会解决你的问题.

但是,如果您不想使用外部库,我不知道可能导致此问题的原因……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读