/** * Traitement par défaut */ public function processDefault() { // On charge la classe exportée Copix::RequireOnce($this->_exportClassFilename); // Définition du serveur Soap if (isset($this->_wsname)) { $server = new SoapServer(_url('wsserver|default|wsdl', array('wsname' => $this->_wsname))); } else { $server = new SoapServer(_url('wsserver|default|wsdl')); } // Assignation de la classe exportée au serveur $server->setclass($this->_exportClass); // Traitement des appels if ($_SERVER['REQUEST_METHOD'] == 'POST') { $server->handle(); return _arNone(); } else { $res = '<strong>' . _i18n('wsserver.handle.title') . '</strong>'; $res .= '<ul>'; foreach ($server->getFunctions() as $func) { $res .= '<li>' . $func . '</li>'; } $res .= '</ul>'; $res; } $tpl = new CopixTpl(); $tpl->assign('MAIN', $res); return new CopixActionReturn(CopixActionReturn::DISPLAY, $tpl); }
public function ws() { Load::library('WebService'); $server = new SoapServer(null, array('uri' => 'http://localhost/freekore/test/ws')); // Asignamos la Clase $server->setClass('WebService'); // Atendemos las peticiones $server->handle(); $server->getFunctions(); }
<?php class HelloWorld { function hello($name) { return "Hello from " . $name; } } $URL = "http://localhost/github/PGROU/testsCedric/testWS/test.wsdl"; $server = new SoapServer($URL); $server->setClass("HelloWorld"); if ($_SERVER["REQUEST_METHOD"] == "POST") { $server->handle(); } else { echo "Ce serveur SOAP peut gérer les fonctions suivantes : "; $functions = $server->getFunctions(); foreach ($functions as $func) { echo $func . "\r"; } }
throw new SoapFault("iTop SOAP server", "Invalid argument service_category: '{$sServiceClass}' is not a PHP class"); } elseif (!is_subclass_of($sServiceClass, 'WebServicesBase')) { // not a valid class name (not deriving from WebServicesBase) throw new SoapFault("iTop SOAP server", "Invalid argument service_category: '{$sServiceClass}' is not derived from WebServicesBase"); } else { $oSoapServer->setClass($sServiceClass, null); } } else { $oSoapServer->setClass('BasicServices', null); } if ($_SERVER["REQUEST_METHOD"] == "POST") { CMDBObject::SetTrackOrigin('webservice-soap'); $oSoapServer->handle(); } else { echo "This SOAP server can handle the following functions: "; $aFunctions = $oSoapServer->getFunctions(); echo "<ul>\n"; foreach ($aFunctions as $sFunc) { if ($sFunc == 'GetWSDLContents') { continue; } echo "<li>{$sFunc}</li>\n"; } echo "</ul>\n"; echo "<p>Here the <a href=\"{$sWsdlUri}\">WSDL file</a><p>"; echo "You may also want to try the following service categories: "; echo "<ul>\n"; foreach (get_declared_classes() as $sPHPClass) { if (is_subclass_of($sPHPClass, 'WebServicesBase')) { $sServiceCategory = $sPHPClass; $sSoapServerUri = 'http' . (utils::IsConnectionSecure() ? 's' : '') . '://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . dirname($_SERVER['SCRIPT_NAME']) . '/../webservices/soapserver.php';
try { $server = new SoapServer($uri . '/soap/codendi.wsdl.php?wsdl', array('trace' => 1, 'soap_version' => SOAP_1_1)); require_once 'utils_soap.php'; require_once 'common/session.php'; require_once 'common/group.php'; require_once 'common/users.php'; require_once 'tracker/tracker.php'; require_once 'frs/frs.php'; // include the <Plugin> API (only if plugin is available) $em =& EventManager::instance(); $em->processEvent('soap', array()); } catch (Exception $e) { echo $e; } // if POST was used to send this request, we handle it // else, we display a list of available methods if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (LOG_SOAP_REQUESTS) { error_log('SOAP Request :'); error_log($HTTP_RAW_POST_DATA); } $server->handle(); } else { echo '<strong>This SOAP server can handle following functions : </strong>'; echo '<ul>'; foreach ($server->getFunctions() as $func) { echo '<li>', $func, '</li>'; } echo '</ul>'; echo '<a href="codendi.wsdl.php?wsdl">You can access the WSDL</a>'; }
$wsdlFile->addTypes(); $wsdlFile->addMessage(); $wsdlFile->addPortType(); $wsdlFile->addBinding(); $wsdlFile->addService($username, $password, $m, $a, $classname); echo $wsdlFile->saveXML(); } else { if (!$classname || !class_exists($classname, true)) { throw new SoapFault("1", "Error : classname is not valid"); } // on indique au serveur à quel fichier de description il est lié try { $base_url = CAppUI::conf("webservices wsdl_root_url"); $base = $base_url ? $base_url : CApp::getBaseUrl(); $serverSOAP = new SoapServer($base . "/?login=1&username={$username}&password={$password}&m={$m}&a={$a}&class={$classname}&wsdl"); } catch (Exception $e) { echo $e->getMessage(); } $serverSOAP->setClass($classname); // Lance le serveur if ($_SERVER['REQUEST_METHOD'] == 'POST') { $serverSOAP->handle(); } else { echo '<strong>This Mediboard SOAP server can handle following functions : </strong>'; echo '<ul>'; foreach ($serverSOAP->getFunctions() as $_function) { echo '<li>', $_function, '</li>'; } echo '</ul>'; } }