Problem mit SOAPServer

time-master

Erfahrenes Mitglied
Hi,

ich habe ein Problem mit der Klasse SoapServer! Erstmal meine Sourcen:

PHP:
ini_set("soap.wsdl_cache_enabled", "0");
class XpService
{
  public function Version($qq)
  {
    return "teststring";
  }
}
$soapcontent = file_get_contents('php://input');
try
{
  $server = new SOAPServer("http://faxeUrl.WSDL");
  $server->setClass("XpService");
  $server->handle($soapcontent);
}
catch (SOAPFault $f)
{
  file_put_contents("qq.txt", $f->faultstring);
}

Mein Problem ist, dass ich einfach keine Antwort zurück bekomme, bzw. eine leere stdClass! Mein Client ist definitiv in Ordnung! Es muss also am Server liegen! Ich habe mir die Anfrage, die beim Server ankommt angeschaut und die ist eigentlich auch okay:
Code:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
  <Version xmlns="http://tempuri.org/">
    <userKey>testKey</userKey>
  </Version>
</soap:Body>
</soap:Envelope>
Und die Methode Version der Klasse XpService wird auch aufgerufen! Es kommt nur nichts zurück!

Hat jemand einen Lösungsansatz für mich?
 
Okay...da mir anscheind niemand helfen kann, versuche ich es mal auf einem anderen Weg!

Nun folgender Code:
PHP:
ini_set("soap.wsdl_cache_enabled", "0");
class XpService
{
  public function Version($qq)
  {
    return "teststring";
  }
}
$soapcontent = file_get_contents('php://input');
try
{
  $server = new SOAPServer(null, array('uri' => "http://tempuri.org/"));
  $server->setClass("XpService");
  $server->handle($soapcontent);
}
catch (SOAPFault $f)
{
  file_put_contents("qq.txt", $f->faultstring);
}
Hierbei sollte doch eine WSDL Datei erstellt werden! Bietet die SOAPServer Klasse irgendeine Methode oder Property an, mit der ich an die WSDL Datei komme?
 
Hi, soweit ich weiss, erstellt der SOAPServer von PHP keine WSDL Datei, sondern diese muss entweder von dir selbst erstellt werden, oder du weichst auf fertige Lösungen aus, wie z.B. Zend_Soap_Autodiscovery. Habe allerdings selber noch nicht damit gearbeitet.
 
Zurück