Hallo zusammen,
ich habe heute den ganzen Abend damit verbracht einen Soap-webservice zu debuggen, aber leider komme ich einfach nicht weiter. Das ganze ist aus einem Tutorial und sollte recht narrensicher sein.
• vhosts bei mir : http://service, http://client
• definition des servers:
• definition des clients:
• definition der wsdl-file:
Lasse ich mir vom Client mittels
alle Funktionen anzeigen, scheint soweit alles ok, ich bekomme angezeigt :
Wenn ich jedoch die Methode halloWelt() aufrufen will, bekomme ich die Meldung
"looks like we got no XML document".
Leider komme ich nun seit einer geraumen Weile damit nicht mehr weiter. Hat jemand evtl. Vorschläge womit ich es versuchen könnte?
vielen Dank vorab und viele Grüße,
Sebastian
ich habe heute den ganzen Abend damit verbracht einen Soap-webservice zu debuggen, aber leider komme ich einfach nicht weiter. Das ganze ist aus einem Tutorial und sollte recht narrensicher sein.
• vhosts bei mir : http://service, http://client
• definition des servers:
PHP:
<?php
class Webdienst {
public function halloWelt() {
return 'Hallo Welt';
}
}
try {
$server = new SOAPServer('HalloWelt.wsdl');
$server->setClass('Webdienst');
$server->handle();
}
catch (SOAPFault $f) {
print $f->faultstring;
}
?>
• definition des clients:
PHP:
<?php
try {
$client = new SOAPClient('http://service/HalloWelt.wsdl');
print $client->halloWelt();
}
catch (SOAPFault $f) {
print $f->faultstring;
}
?>
• definition der wsdl-file:
Code:
<?xml version ="1.0" encoding ="UTF-8" ?>
<definitions name="HalloWelt"
targetNamespace="http://localhost/HalloWelt"
xmlns:tns=" http://localhost/HalloWelt"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="halloWeltResponse">
<part name="Result" type="xsd:string"/>
</message>
<portType name="HalloWeltPortType">
<operation name="halloWelt">
<output message="tns:halloWeltResponse"/>
</operation>
</portType>
<binding name="HalloWeltBinding" type="tns:HalloWeltPortType">
<soap:binding
style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="halloWelt">
<soap:operation soapAction="urn:hallowelt#halloWelt"/>
<output>
<soap:body
use="encoded"
namespace="urn:hallowelt"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="HalloWeltService">
<port name="HalloWeltPort" binding="HalloWeltBinding">
<soap:address location="http://localhost/HalloWelt.php"/>
</port>
</service>
</definitions>
Lasse ich mir vom Client mittels
PHP:
$a = $client->__getFunctions();
echo "<pre>";
var_dump($a);
echo "</pre>";
alle Funktionen anzeigen, scheint soweit alles ok, ich bekomme angezeigt :
Code:
array(1) {
[0]=>
string(18) "string halloWelt()"
}
Wenn ich jedoch die Methode halloWelt() aufrufen will, bekomme ich die Meldung
"looks like we got no XML document".
Leider komme ich nun seit einer geraumen Weile damit nicht mehr weiter. Hat jemand evtl. Vorschläge womit ich es versuchen könnte?
vielen Dank vorab und viele Grüße,
Sebastian