public function run()
{
if (($provider = $this->getProvider()) !== null) {
Prado::using($provider);
$providerClass = ($pos = strrpos($provider, '.')) !== false ? substr($provider, $pos + 1) : $provider;
$this->guessMethodCallRequested($providerClass);
$server = $this->createServer();
$server->setClass($providerClass, $this);
if ($this->_persistent) {
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
}
} else {
$server = $this->createServer();
}
try {
$server->handle();
} catch (\Exception $e) {
if ($this->getApplication()->getMode() === TApplicationMode::Debug) {
$this->fault($e->getMessage(), $e->__toString());
} else {
$this->fault($e->getMessage());
}
}
}