Я использую nuSoap с Symfony
действует рецепт:
http://127.0.0.1:8000/recept?wsdl я получаю XML-схему ....
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://127.0.0.1:8000/recept" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="App.Service.SoapDataService" targetNamespace="http://127.0.0.1:8000/recept">
..........
/**
* @Route("/recept", methods={"GET"}, name="default_recept")
*/
public function recept(Request $request, SoapDataService $soapDataService, ParameterBagInterface $params): Response
{
$path = $params->get('root_dir');
$filename = $path . "/../public/hello.wsdl";
$gen = new \PHP2WSDL\PHPClass2WSDL($soapDataService, "http://127.0.0.1:8000/recept");
$gen->generateWSDL();
$gen->save($filename);
$soapServer = new \SoapServer($filename);
$soapServer->setObject($soapDataService);
$response = new Response();
$response->headers->set('Content-Type', 'text/xml; charset=ISO-8859-1');
ob_start();
$soapServer->handle();
$response->setContent(ob_get_clean());
return $response;
}
но клиент с сервером Soap у него не работает!
/**
* @Route("/client", methods={"GET"}, name="default_client")
*/
public function client(Request $request, SoapDataService $soapDataService, ParameterBagInterface $params): Response
{
$path = $params->get('root_dir');
$filename = $path . "/../public/hello.wsdl";
$soapClient = new \SoapClient('http://127.0.0.1:8000/recept?wsdl');
$result = $soapClient->call('hello');
dump($result);
}
в этой строке:
$result = $soapClient->call('hello');
itостается заблокированным без каких-либо действий. Превышено максимальное время выполнения 120 секунд
namespace App\Service;
class SoapDataService
{
public function __construct()
{
}
public function hello($name)
{
return 'Hello, '.$name;
}
}
HELP!
для тестирования с \ Zend \ Soap \ Server
$server = new \Zend\Soap\Server('http://127.0.0.1:8000/recept?wsdl', $options);
$server->setObject($soapDataService);
$server->handle();
$server->setReturnResponse(true);
через 120 секунд: SOAP-ERROR: синтаксический анализ WSDL: Couldn 't load from 'http://127.0.0.1:8000/recept?wsdl': не удалось загрузить внешний объект "http://127.0.0.1:8000/recept?wsdl"