У меня возникли серьезные проблемы для решения этой проблемы. Я получил APP с тремя модулями, которые предоставили SOAP различные сервисы. Что происходит, что 2 из них получают такой ответ:ZF2 SOAP «Процедура нет» Ошибка
SoapFault
Файл: /var/www/empreendimentos/vendor/zendframework/zendframework/library/Zend/Soap/Client.php:10
Сообщение: Процедура нет
я уже проверил, а имена функций прав и я использую метод getFunctions. Это возвращение из getFunctions():
array
0 => string 'Array getCliAll(anyType $filter)' (length=32)
1 => string 'Array insertCli(anyType $data)' (length=30)
2 => string 'Array editCli(anyType $data, anyType $id)' (length=41)
3 => string 'void setServiceLocator(anyType $serviceLocator)' (length=47)
4 => string 'void getServiceLocator()' (length=24)
Мои методы рукояток выглядеть следующим образом:
public function handleWSDL() {
$autodiscover = new AutoDiscover();
$autodiscover->setClass('\Cli\Service\CliService');
$autodiscover->setUri($this->_URI);
$wsdl = $autodiscover->generate();
$wsdl = $wsdl->toDomDocument();
// geramos o XML dando um echo no $wsdl->saveXML()
echo $wsdl->saveXML();
}
public function handleSOAP() {
$soap = new \Zend\Soap\Server($this->_WSDL_URI);
$soap->setWSDLCache(false);
$classHandle = new CliService();
$classHandle->setServiceLocator($this->getServiceLocator());
$soap->setClass($classHandle);
$soap->handle();
}
Я не получаю ошибки на стороне сервера. Только этот ответ для всех методов. Что не так?
UPDATE:
Оказывается, это "проблема" в конфигурации ZF2. перегрузки. У меня был modile.config.php, чтобы хранить информацию WSDL и URI, но использовал тот же ярлык для конфигурации в файле. Перегрузка делала каждый WSDL и URI одинаковым и давала мне проблему.
Как это:
EMP модуль modile.config.php
'service_url' => array(
"wsdl" => 'http://localhost/empreendimentos/public/emp/service?wsdl',
"return" => 'http://localhost/empreendimentos/public/emp/service',
),
EMP Module modile.config.php
'service_url' => array(
"wsdl" => 'http://localhost/empreendimentos/public/cli/service?wsdl',
"return" => 'http://localhost/empreendimentos/public/cli/service',
),
Каждый знает, почему это так? это значит, что нужно смешивать конфигурации модулей?
Просто, что случилось со мной брош! большое спасибо! теперь он отлично работает! –