Ein Array von Objekten im PHP Web Service zurückgeben

8

Ich möchte ein Array von Artikelobjekten in einem PHP-Webdienst mit nuSOAP v 1.114 zurückgeben. So richte ich die WSDL ein:

%Vor%

Meine PHP-Artikelklasse ist sehr einfach:

%Vor%

Wenn ich nur ein neues Artikel-Objekt zurückgebe, so:

%Vor%

die Funktion, registriert als:

%Vor%

funktioniert einwandfrei und gibt den Artikel zurück, als wäre es ein Array. Wenn ich jedoch versuche, einen ArrayOfArticleType (die auskommentierte Zeile in TestArrayReturn ()) zurückzugeben und die Funktion als Rückgabetyp tns: ArrayOfArticleType zu registrieren, schlägt der Fehler fehl: HTTP-Fehler: Keine Daten nach HTTP-Headern vorhanden.

Wenn ich jedoch ein ARRAY von ARRAYS manuell erstelle, so:

%Vor%

es funktioniert !? Was ist falsch mit meiner ArrayOfArticleType-WSDL-Beschreibung, die es nicht erlaubt, ArticleType-Objekte korrekt zu serialisieren, aber ein assoziatives Array mit den gleichen Eigenschaften ("articleId", "heading", "text") richtig zu serialisieren?

Entschuldigung für den ganzen Code, aber ich denke, dass es notwendig ist, den Fehler zu identifizieren, den ich übersehen habe. Jede Hilfe wird geschätzt, ich habe seit Tagen mit der Einrichtung der WSDL für diesen Service gekämpft.

    
gouwsmeister 22.09.2009, 12:59
quelle

2 Antworten

4

Ich habe diesen Fehler behoben. Für alle Interessierten scheint dies ein Fehler in NuSOAP zu sein. Sie MÜSSEN Ihren returnType für die Funktion als xsd: Array registrieren, damit das Array korrekt zurückgegeben wird, obwohl korrekte WSDL es als 'tns: ArrayOfArticleType' darstellen würde. Ich habe das in einem Drupal-Quellcode gefunden:

%Vor%

Ich hoffe, das hilft jemandem, der mit dem gleichen Problem zu kämpfen hatte.

    
gouwsmeister 22.09.2009, 14:29
quelle
0

Hier ist ein Beispiel sowohl Client als auch Server für die Rückgabe eines Arrays mit php web service.Es ist ein einfaches Beispiel zu verstehen Ссылка

    
nikunj gandhi 23.01.2012 17:09
quelle

Tags und Links