/**
  * 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);
 }
Example #2
0
 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();
 }
Example #3
0
<?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";
    }
}
Example #4
0
        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';
Example #5
0
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>';
}
Example #6
0
    $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>';
    }
}