SOAP soapCall (PHP) vs SOAPMethod (XOJO)

Vielleicht hat ja jemand die Lösung und/oder einen Tipp:

Ich versuche gerade ein PHP-Projekt als Desktop-App (OSX) mit Xojo zu portieren und stosse in Sachen SOAP auf “Wiederstände”.

Im PHP gibt es

$client = new SoapClient("Pfad_auf_WSDL-Datei"); $token = $client->__soapCall("machwas",array("w1","w2","w3"));

Klappt, die Methode “machwas” verarbeitet die drei Strings w1 bis w3 als Parametr für p1 bis p3 und gibt ein Ergebnisstring zurück.

Wie sieht das jetzt in Xojo aus?

[code]Dim dms as SOAPMethod
Dim sr as SOAPResult
dms = NEW SOAPMethod(“Pfad_auf_WSDL-Datei”)

dms.Parameter(“p1”) = “w1”
dms.Parameter(“p2”) = “w2”
dms.Parameter(“p3”) = “w3”[/code]

Wenn ich hier die Namen der Parameter ändere, z.B. aus p1 pp1 mache, dann gibt es einen Laufzeitfehler “SOAPExeception” “incorrect parameters”, so weit, so gut.

sr = dms.Invoke(“machwas”)

liefert mir das Ergebnis als XML:

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”>
SOAP-ENV:Body
SOAP-ENV:Fault
SOAP-ENV:Server
Function ‘machwas’ doesn’t exist
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

“machwas” doesn’t exist? Doch, denn wenn ich aus “machwas” “sawhcam” mache, gibt es wieder zur Laufzeit eine SOAPException “Method name does not exist in WSDL”.

Irgendwo ist da der Wurm drinnen - nur wo? In meiner Portierung, in XOJO oder in dem Webservice, den ich via SOAP mit Basic ansprechen will?

Hallo Andreas,

ich habe das gleiche Problem. Bisher keine Lösung. Ich glaube, dass SOAPMethod nur einfache Datentypen unterstützt. Hast Du zwischenzeitlich etwas herausgefunden?

Gruss, Louis

Wir haben dafür mal das SOAP Kit gebaut, weil die eingebauten Klassen ihre grenzen haben.

Oder selber via HTTPSocket XML verschicken/parsen.