Soap WSDL找不到的分派方法
对于使用WSDL的web服务调用,我得到了错误Soap WSDL找不到的分派方法,soap,wsdl,Soap,Wsdl,对于使用WSDL的web服务调用,我得到了错误找不到的分派方法{http://ws.somecompany.com/services}ValidateUser,这到底是什么意思?这是否意味着它找不到ValidateUser?这通常意味着SOAP框架找不到应该通过此请求调用的操作。SOAP框架通常检查消息,以找到有关如何将消息路由到操作的指针。出现此错误的原因主要是配置问题(不同的名称空间、不同的编码(RPC与doc/lit)、WS-Addressing与普通SOAP的使用等)。我也遇到过类似的问
找不到的分派方法{http://ws.somecompany.com/services}ValidateUser
,这到底是什么意思?这是否意味着它找不到ValidateUser?这通常意味着SOAP框架找不到应该通过此请求调用的操作。SOAP框架通常检查消息,以找到有关如何将消息路由到操作的指针。出现此错误的原因主要是配置问题(不同的名称空间、不同的编码(RPC与doc/lit)、WS-Addressing与普通SOAP的使用等)。我也遇到过类似的问题,并且在谷歌上搜索了一天。但这只是一个简单的错误,而不是:
{http://ws.somecompany.com/services}ValidateUser
应该是
{http://ws.somecompany.com/services/}ValidateUser
我没有清楚地检查我的WSDL。在我的例子中,我通过确保配置文件app.config或web.config(取决于您的客户端)具有正确的端点来解决问题。我的终点站地址错了。我改了,效果很好 我也为这个问题损失了一天,尽管根本原因不同
在我们的例子中,属性文件中混合了两个类似的端点URL。这两个服务都存在并正在运行,但WSDLs不匹配,因此我们得到的不是ConnectionException,而是SOAPFaultException:“找不到分派方法”。我的50美分收到了相同的错误消息,但我的案例与上面的情况不同,因此希望它能帮助某些人
我有一个.wsdl文件,当ws另一端的同事重命名某个元素时,我不知道该文件已经过时。不幸的是,当我将.wsdl与它们的进行比较时,更改是不可见的,因为.wsdl文件具有.xsd导入,该导入实际上包含重命名的元素。找到更改后,我更新了.xsd文件和tada!错误消失了,它工作了。在我的例子中,即使我提供了所有参数,也会引发以下异常
SoapFault exception: [S:Client] Cannot find dispatch method for {}parameters in
几个小时后,在初始化SoapClient时添加\就解决了问题
发件人:
$client = new SoapClient($soapURL);
致:
我在.NET应用程序中遇到了同样的问题,在我的例子中,将url设置为“”(虚拟url)解决了下面代码中的问题 Vb.Net
这里,WSTestProject是WebService名称空间,testproject是web方法。我正在使用一个用于soap的假客户端,我遇到了类似的问题,向JAXB请求和响应对象添加正确的名称空间解决了这个问题。我的环境中的问题是php中的wsdl缓存。客户端没有选择更新的wsdl,它引用的是旧的wsdl 在开发web服务和测试时,您可以执行以下任一选项,因为wsdl在web服务的更新/实现过程中会发生更改
- 将
添加到soap客户端创建中WSDL\u CACHE\u NONE
$myServices_client = new SoapClient($myServices_wsdl_URL, array('cache_wsdl' => WSDL_CACHE_NONE) );
- 设置初始化参数
ini_set("soap.wsdl_cache_enabled", 0);
的
中引用的
与
中引用的
没有与
相同的命名空间。它还应该具有相同的名称,以避免包装输入参数。
$myServices_client = new SoapClient($myServices_wsdl_URL, array('cache_wsdl' => WSDL_CACHE_NONE) );
ini_set("soap.wsdl_cache_enabled", 0);