我有一個webservice,它返回一個包含數組的對象。我由wsdl4j生成的Bean類。如果我調用服務,對象始終返回正確的字段,但數組始終只有一個條目。 web服務響應有兩個條目,但Axis中的第二個條目將丟失。該服務似乎很好,只有在Axis代碼中的處理似乎是錯誤的。Axis 1.4不會反序列化數組right
這是響應主體
[<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>]
的所以在最後我只ProjectDataResult的CentreBean陣列中獲得「中心2」的內容。我試過單步調試,但沒有成功。
我發現方法RPCElement.publishToHandler()之後RPCElement的參數是錯誤的。該方法重放一些SAX事件(org.apache.axis.message.SAX2EventRecorder),兩個CentreBeans都被處理,但只有最後一個將成爲結果的一部分。
有沒有人解決這個問題?
這是可能的,但我無法更改服務,它由外部網站管理。 – arothe
我已經用http://stackoverflow.com/a/37549073/1503313解決了這個問題 – arothe