Процедура PHP SOAP 'имя_функции' отсутствует

Я пишу SOAP-приложение в Symfony и по всем моим запросам получаю ошибкуProcedure 'getClusterName' not present.

Странно то, что когда я создаю тестовое SOAP-приложение на чистом PHP, оно работает нормально, но тот же код в Symfony возвращает ошибку.

Другая странная вещь заключается в том, что, когда в коде сервера SOAP я перечисляю доступные$server->getFunctions(), он возвращает массив сервисных функций иgetClusterName находится в этом массиве. Таким образом, функция известна серверу, но она не может вызывать ее.

При написании сервиса в Symfony я следовалЭта статья и вот мой код:

Client:

namespace Prj\SoapBundle\Controller;

class SoapController extends Controller
{
    public function indexAction()
    {
        $client = new \SoapClient('http://localhost/test.wsdl');
        $client->getClusterName();

Server:

namespace Prj\SoapBundle\Controller;

class SoapController extends Controller
{
    public function indexAction()
    {
    ini_set("soap.wsdl_cache_enabled", "0");
    $server = new \SoapServer($this->container->getParameter('wsdl'));
    $server->setClass('SoapBundle\HelloService');
    $server->handle();

Service:

namespace Prj\SoapBundle;

class HelloService
{
    public function getClusterName() 
    {
        return '<?xml version="1.0" encoding="utf-8"?><root>Hello!</root>';
    }
}

Файл * .wsdl кажется правильным, потому что он связывает вызов с контроллером и отлично работает с ванильным PHP-сервисом.

В Интернете эта ошибка обычно объясняется кэшированным wsdl, но здесь это обрабатывается в коде сервера путем установкиsoap.wsdl_cache_enabled параметр в ноль.

Ответы на вопрос(2)

Ваш ответ на вопрос