Для вызова веб-службы с использованием WSDL я получаю сообщение об ошибке Cannot find dispatch method for {http://ws.somecompany.com/services}ValidateUser
, что это значит? Означает ли это, что он не может найти ValidateUser
?
WSDL Не удается найти способ отправки
Ответ 1
Это обычно означает, что структура SOAP не могла найти операцию, которая должна быть вызвана с помощью этого запроса. Структура SOAP обычно проверяет сообщение, чтобы найти указатели о том, как перенаправить сообщение на операцию. Причинами этой ошибки являются главным образом проблемы с конфигурацией (разные пространства имен, разные кодировки (RPC против doc/lit), использование WS-Addressing против обычного SOAP и т.д.)
Ответ 2
У меня была аналогичная проблема, и я боролся, гуглинг в течение 1 дня. Но это была простая ошибка, а не:
{http://ws.somecompany.com/services}ValidateUser
Это должно быть
{http://ws.somecompany.com/services/}ValidateUser
Я не проверил свой WSDL.
Ответ 3
В моем случае я решил, убедившись, что мой файл конфигурации либо app.config, либо web.config в зависимости от вашего клиента имеет правильную конечную точку. У меня был неправильный адрес в моей конечной точке. Я изменил его, и все получилось нормально.
Ответ 4
Я также потерял день на эту проблему, хотя и с другой первопричиной.
В нашем случае в файле свойств смешались два одинаковых URL-адреса конечных точек. Обе службы присутствовали и выполнялись, но WSDL не совпадали, поэтому вместо исключения ConnectionException мы получили это SOAPFaultException: "Не удается найти метод отправки".
Ответ 5
Мои пятьдесят центов, я получил такое же сообщение об ошибке, но мое дело все-таки отличалось от всего выше, так что, надеюсь, это может помочь кому-то.
У меня был файл .wsdl, который устарел, без моего ведома, когда коллеги на другой стороне ws переименовали какой-то элемент. К сожалению, изменения не были видны, когда я сравнивал .wsdl с их, потому что .wsdl файл имел .xsd-импорт, который фактически содержал переименованный элемент. После того, как я нашел изменения, я обновил файл .xsd и tada! ошибка исчезла, и она сработала.
Ответ 6
В моем случае следующее исключение бросало даже я предоставил все параметры
SoapFault exception: [S:Client] Cannot find dispatch method for {}parameters in
После того, как я ударил голову несколько часов, просто добавив инициализацию SoapClient, она решила проблему.
От:
$client = new SoapClient($soapURL);
To:
$client = new \SoapClient($soapURL);
Ответ 7
У меня была такая же проблема в моем приложении .NET. В моем случае настройка url аналогична " http://x-xxx-xx-xx-01:8080//TestProject/testproject?wsdl" (фиктивный URL) решил проблему в приведенном ниже коде.
Vb.Net
Dim rptGen as WSTestProject.testproject = Nothing
rptGen = New WSTestProject.testproject With {
.Url = "http://x-xxx-xx-xx-01:8080//TestProject/testproject?wsdl",
.Timeout = 1200000
}
Здесь WSTestProject - это WebService NameSpace, а testproject - это веб-метод.