Мыльный сервер Symfony, как настроить ответ

Я пытаюсь реализовать очень простой вызов мыла в Symfony3.
Работает отлично но ничего не возвращает.

В моем контроллере я просто называю это так

public function indexAction()
{
$server = new \SoapServer($this->get('kernel')->getRootDir()."/../web/soap/test.wsdl");
$server->setObject($this->get('serv.soapservice'));

$response = new Response();
$response->headers->set('Content-Type', 'text/xml; charset=ISO-8859-1');

ob_start();
$server->handle();
$response->setContent(ob_get_clean());

return $response;
}

И вызываемая функция выглядит так

public function hello($param)
{
return 'Hello, '.$param->name;
}

Я попробовал это с SoapUI, и он работает отлично, но возврат мыла так

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://localhost/symfony/test/web/app_dev.php/en/soap">
<SOAP-ENV:Body>
<ns1:helloResponse/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Это не возвращает ответ функции как это

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://localhost/symfony/test/web/app_dev.php/en/soap">
<SOAP-ENV:Body>
<ns1:helloResponse>
<out>Hello John</out>
<ns1:helloResponse/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Как я могу вернуть его?

0

Решение

Я наконец-то нашел проблему. Мне просто нужно изменить способ, которым я возвращаюсь в моей функции приветствия.
Теперь это выглядит так и прекрасно работает.

public function hello($param)
{
$response = array();
$response['out']='Hello, '.$param->name;
return $response;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]