Исключить исключение SoapFault: Функция не является допустимым методом для этой службы

Когда я пытаюсь получить доступ к функции в wsdl с некоторыми данными (используя мыльный клиент в php), я получаю следующую ошибку.

Uncaught SoapFault exception: [Client] Function function_nameis not a valid method for this service 

Любая помощь?

Related of "Исключить исключение SoapFault: Функция не является допустимым методом для этой службы"

Если вы хотите выполнить функцию, которую SOAP не может найти – возможно, что PHP кэшировал файл wsdl.

Добавь это:

 ini_set("soap.wsdl_cache_enabled", "0"); 

для отключения кэширования.

Два возможных решения:

  1. попробуйте проверить, действительно ли функция существует с фрагментом кода: PHP SoapClient request: недействительный метод для этой службы
  2. Кроме того, как только вы отобразите список доступных вызовов функций, позаботьтесь о том, чтобы, если ваш WSDL генерируется сервером Java SOAP, у вас может быть несколько функций с именем «service» (или с тем же именем). Только первый будет распознан и использован клиентом PHP SOAP. Вам необходимо вручную переименовать все в WSDL!

Просто добавьте параметры, тип возврата и метод веб-службы в комментарии в верхней части функции. Это будет работать. Я пробовал работать.

 /** * @param string the symbol of the stock * @return float the stock price * @soap */ public function getPrice($symbol) { //...return stock price for $symbol } 

У меня была эта проблема и, наконец, я решил проверить свой журнал ошибок php.

В php.ini включить always_populate_raw_post_data = -1 и перезапустить сервер.

Моя версия PHP – 5.6.8

В нашей ситуации это исключение возникло при обновлении с PHP5.6 до PHP7. Для нас также отключилось кэширование WSDL.

 ini_set("soap.wsdl_cache_enabled", "0"); 

Также см .: http://lornajane.net/posts/2015/soapfault-when-switching-php -versions