我需要实现一个SOAP服务器,它将响应作为SOAP客户端的第三方应用程序 .
服务器应该是PHP,所以我开始使用nusoap和http://www.wsdltophp.com/来生成骨架 .
这是他们给我的wsdl文件:http://pastebin.com/YXBbszqE来自支持的人说我应该从Ping请求开始,因为它是最简单直接的实现 .
我是新手,非常感谢你的帮助 .
这是我到目前为止服务器的内容:http://pastebin.com/vARst5t0
并模拟客户端:http://pastebin.com/seG7EmM6
它给了我一个错误:http://pastebin.com/Say6FmF6
非常感谢,伙计们 .
编辑:我发现在服务器上,在禁用error_reporting后,我没有收到上一个错误 .
我忘了提到我使用加载wsdl文件的nusoap功能而不是手动定义每个complexType,但它仍然无法正常工作,现在我收到以下错误: Operation 'Ping' is not defined in the WSDL for this service
. 我确信它在那里 .
2 回答
也许它来自您在生成包时选择的选项 . 实际上,在调用MySoapServicePing :: Ping()方法时,参数可能无法正确发送:数组是否包含 . 因此,尝试修改生成行为并再次发送请求 .
您还可以查看发送到SOAP服务器的XML请求,以确保它不是来自请求 . 要获取XML请求,您可以在发送请求后调用MySoapWsdlClass :: getSoapClient() - > __ getLastRequest()方法或$ mySoapServicePing-> getLastRequest()方法(取决于生成器的版本) .
如果它发生了变化,请告诉我 .
谢谢大家,我最终使用了php本机函数,配置起来要容易得多 .