Ich habe Probleme mit dem PHP-Parser des Antwortaufrufs eines SoapClients. Für einige Arten von Antworten gibt es anstelle von initialisierten stdClass-Objekten Arrays leerer stdClass-Objekte.
Der Server ist ein Java-Webservice, der mit Axis2 auf Tomcat6 bereitgestellt wird. Die Java-Signatur des problematischen Service-Aufrufs lautet public Course getCourseDetails(Long courseId)
. Course ist ein standardmäßiges POJO, das wie folgt definiert ist:
public class Course {
private Long id;
private List holes;
private String name;
private String tees;
//usw...
}
Hole ist ein standardmäßiges POJO mit nur primitiven Elementen.
Bei Verwendung von PHP ist das holes-Element ein Array mit der korrekten Länge, aber jedes Loch ist leer.
$args = array();
$args["courseId"] = $courseId;
$response = $client->getCourseDetails($args);
$course = $response->return;
//course hat alle seine primitiven Elemente korrekt gesetzt: gut
$holes = $course->holes;
//holes ist ein Array mit count = 18: gut
$hole = $holes[0];
//hole ist ein leeres stdClass: schlecht
Beim Ausdrucken des zurückgegebenen XML mit $soapClient->__getLastResponse()
sieht es wie die richtige Darstellung aus:
Faketown, VA
Fake Links
2003-01-02
114345
223150
335502
444345
554345
664345
774345
884345
994345
10104345
11114345
12124345
13134345
14144345
15154345
16164345
17174345
18184345
1
68.5
113
Blue
Warum sind alle Löcher leere stdClass-Objekte? Gibt es bekannte Einschränkungen für die Anzahl der Ebenen, die ein SoapClient analysiert?
0 Stimmen
Ich habe das gleiche Problem. Ich habe einen Kommentar zum Bug hinzugefügt. Ich hatte Schwierigkeiten, einen Kommentar zum Bug hinzuzufügen aufgrund von bugs.php.net/bug.php?id=48126