Когда я пытаюсь получить доступ к функции в wsdl с некоторыми данными (используя мыльный клиент в php), я получаю следующую ошибку.
Uncaught SoapFault exception: [Client] Function function_nameis not a valid method for this service
Любая помощь?
Если вы хотите выполнить функцию, которую SOAP не может найти – возможно, что PHP кэшировал файл wsdl.
Добавь это:
ini_set("soap.wsdl_cache_enabled", "0");
для отключения кэширования.
Два возможных решения:
Просто добавьте параметры, тип возврата и метод веб-службы в комментарии в верхней части функции. Это будет работать. Я пробовал работать.
/** * @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