我有一个webserivce,只是简单地在SOAP客户端调用webservice
即。
$ client = new SoapClient(“http://test.unistream.com/wcflib/service.svc?WSDL”);
它说
SOAP-ERROR:解析WSDL:'IWebService_GetCountries_InputMessage'已定义
网络服务
http://test.unistream.com/wcflib/service.svc?WSDL
感谢。
答案 0 :(得分:1)
它可能与此相关或相同: https://bugs.php.net/bug.php?id=43868,
你也可以在这里找到一个可能的解决方案 PHP SoapClient: Problems with Distributed WSDL File
(也许重复......)
稍后编辑,这里是另一个链接:http://www.codingforums.com/showthread.php?t=181338
答案 1 :(得分:1)
问题是'IWebService_GetCountries_InputMessage'类型在该WSDL中定义了多次。这不是您的代码的错误,而是您尝试使用的WSDL。您应该与编写WSDL的人交谈,看看他们是否可以重新创建它并解决问题。
答案 2 :(得分:0)
我的系统出现了同样的错误:Soap客户端使用PHP(5.3.10),服务器端使用.NET编写:
为了避免这种情况,我只使用.net 的大小写不敏感的标准功能,并在小写(“foo.wsdl”)中调用第一个wsdl而不是原始案例(Foo.wsdl)。 它起作用,因为现在,foo.wsdl导入Bar.wsdl,并且Bar.wsdl导入Foo.wsdl,并且通过我无法解释的奇怪的事情,PHP喜欢它。