Ich habe einen Webservice, der ein Objekt zurückgibt, das ein Array enthält. Die Bean-Klassen, die ich von wsdl4j generiert habe. Wenn ich den Service aufruft, gibt das Objekt immer die richtigen Felder zurück, aber das Array hat immer nur einen Eintrag. Die Webservice-Antwort hat zwei Einträge, aber irgendwo in Axis geht der zweite Eintrag verloren. Der Dienst scheint in Ordnung zu sein, nur die Verarbeitung im Axis-Code scheint falsch zu sein.Achse 1.4 deserialize Arrays nicht richtig
Dies ist der Inhalt des Antworttext am Ende
[<projectDataReturn xsi:type="ns4:ProjectDataResult" xmlns:ns4="http://results.ws.appserver.secutrial.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<errorCode xsi:type="xsd:int">0</errorCode>
<message xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
<statusCode xsi:type="xsd:int">1</statusCode>
<project xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">HAHA</project>
<centres xsi:type="ns5:CentreBean" xmlns:ns5="http://beans.eo.secutrial.de"><name xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Center1</name></centres>
<centres xsi:type="ns6:CentreBean" xmlns:ns6="http://beans.eo.secutrial.de"><name xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Center2</name></centres>
</projectDataReturn>]
So habe ich nur in der CentreBean Array des ProjectDataResult "Center2" erhalten. Ich habe Single-Step-Debugging versucht, aber keinen Erfolg.
Ich habe die Methode RPCElement.publishToHandler() gefunden, nach der die Parameter des RPCEelements falsch sind. Die Methode gibt einige SAX-Ereignisse wieder (org.apache.axis.message.SAX2EventRecorder), beide CentreBeans werden verarbeitet, aber nur der letzte Teil wird zum Ergebnis.
Hat jemand das behoben?
Das ist möglich, aber ich kann den Dienst nicht ändern, es wird von einer externen Website verwaltet. – arothe
Ich habe das Problem mit http://stackoverflow.com/a/37549073/1503313 gelöst – arothe