Hallo Leute
habe mir aus dem Artikel [wiki]PHP SOAP Server mit WSDL und API Schlüssel[/wiki] die entsprechenden Dateien heruntergeladen und einen Webservice zum Laufen gebracht. Es sind zwei Funktionen "getFoo" und "setFoo" vorbereitet, die ich mit einfachen Rechenoperationen bestückt habe. Vom client kann ich diese auch gut aufrufen und das klappt soweit. Nun das große
Problem: Füge ich eine neue Funktion im Service und im Client hinzu gibt es eine Fehlermeldung, ebenso, wenn ich den Namen der Funktion ändere. habe hier z. B. getFoo in gtFoo geändert (im Service und im Client) und es kommt folgende Meldung
Fatal error: Uncaught SoapFault exception: [Client] Function ("gtFoo") is not a valid method for this service in C:\xampp\htdocs\phpbeispiele\Webservices\SOAP\client.php:33 Stack trace: #0 C:\xampp\htdocs\phpbeispiele\Webservices\SOAP\client.php(33): SoapClient->__call('gtFoo', Array) #1 C:\xampp\htdocs\phpbeispiele\Webservices\SOAP\client.php(33): SoapClient->gtFoo(20, 10) #2 {main} thrown in C:\xampp\htdocs\phpbeispiele\Webservices\SOAP\client.php on line 33
der Code sieht auszugsweise wie folgt aus:
Client:
echo "Neuer Anlauf";
$erg= $client->gtFoo(20,10);
echo "20 + 19 =".$erg;
echo "<br>";
$erg= $client-> setFoo(600, 400, 200, 600);
echo "(600 + 400 + 200 +600) / 4 =".$erg;
echo "<br>";
echo $erg;
und im Service:
public function gtFoo($param1, $param2) {
if ($param1 != null && $param2 != null && trim($param1) != '' && trim($param2) != '') {
return $param1 + $param2;
} else {}
}
/**
* sets foo
*/
public function setFoo($param1, $param2, $param3, $param4) {
return ($param1 + $param2 + $param3 + $param4)/4;
}
Ändere ich die beiden Stellen auf getFoo, dann funktioniert es. Insbesondere tritt das gleiche Problem auf, wenn ich neue Funktionen hinzufügen möchte. Habe alles unter PHP 5.3 umgesetzt
Hat jemand dazu einen Tipp
Vielen Dank
Michael Z.
habe mir aus dem Artikel [wiki]PHP SOAP Server mit WSDL und API Schlüssel[/wiki] die entsprechenden Dateien heruntergeladen und einen Webservice zum Laufen gebracht. Es sind zwei Funktionen "getFoo" und "setFoo" vorbereitet, die ich mit einfachen Rechenoperationen bestückt habe. Vom client kann ich diese auch gut aufrufen und das klappt soweit. Nun das große
Problem: Füge ich eine neue Funktion im Service und im Client hinzu gibt es eine Fehlermeldung, ebenso, wenn ich den Namen der Funktion ändere. habe hier z. B. getFoo in gtFoo geändert (im Service und im Client) und es kommt folgende Meldung
Fatal error: Uncaught SoapFault exception: [Client] Function ("gtFoo") is not a valid method for this service in C:\xampp\htdocs\phpbeispiele\Webservices\SOAP\client.php:33 Stack trace: #0 C:\xampp\htdocs\phpbeispiele\Webservices\SOAP\client.php(33): SoapClient->__call('gtFoo', Array) #1 C:\xampp\htdocs\phpbeispiele\Webservices\SOAP\client.php(33): SoapClient->gtFoo(20, 10) #2 {main} thrown in C:\xampp\htdocs\phpbeispiele\Webservices\SOAP\client.php on line 33
der Code sieht auszugsweise wie folgt aus:
Client:
echo "Neuer Anlauf";
$erg= $client->gtFoo(20,10);
echo "20 + 19 =".$erg;
echo "<br>";
$erg= $client-> setFoo(600, 400, 200, 600);
echo "(600 + 400 + 200 +600) / 4 =".$erg;
echo "<br>";
echo $erg;
und im Service:
public function gtFoo($param1, $param2) {
if ($param1 != null && $param2 != null && trim($param1) != '' && trim($param2) != '') {
return $param1 + $param2;
} else {}
}
/**
* sets foo
*/
public function setFoo($param1, $param2, $param3, $param4) {
return ($param1 + $param2 + $param3 + $param4)/4;
}
Ändere ich die beiden Stellen auf getFoo, dann funktioniert es. Insbesondere tritt das gleiche Problem auf, wenn ich neue Funktionen hinzufügen möchte. Habe alles unter PHP 5.3 umgesetzt
Hat jemand dazu einen Tipp
Vielen Dank
Michael Z.