2012-05-10 21 views
0

調用Web服務時遇到了一個奇怪的問題。我的存根會生成類似於格式2的soap消息,但是服務器需要類似下面的格式1。 在1.3軸的arrayserialization中,以下格式的含義是什麼。Axis中的數組序列化

arrayItemType下面是對象類型,它正在被序列化,arrayItemName是該對象的名稱。

1)

<arrayItemName> 
    <arrayItemType></arrayItemType> 
    <arrayItemType></arrayItemType> 
</arrayItemName> 

2)

<arrayItemName> 
</arrayItemName> 
<arrayItemName> 
</arrayItemName> 

回答

1

的問題是什麼風格是你的WSDL文件? SOAP文檔依賴於WSDL文件中使用的樣式。

第一種格式被包裝風格,因爲元素是內包裝:

<arrayItemName> ... </arrayItemName>

所以我想,如果你的存根生成SOAP消息像格式2使用RPC /編碼或任何其他WSDL樣式除了被包裹的一個。所以,我建議你總是使用文檔/文字包裝風格的WSDL文件,並使用不同的堆棧或等

您可以找到有關WSDL風格在這裏有用的信息生成客戶端時,會出現什麼問題:http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/