Подтвердить что ты не робот

WSDL Не удается найти способ отправки

Для вызова веб-службы с использованием WSDL я получаю сообщение об ошибке Cannot find dispatch method for {http://ws.somecompany.com/services}ValidateUser, что это значит? Означает ли это, что он не может найти ValidateUser?

4b9b3361

Ответ 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 - это веб-метод.