2011-03-21 50 views
0

我寫了一個小的web服務[Axis2的/ Java的]暴露的方法編寫Python客戶端XS傳遞:anyType的參數傳遞給Web服務方法,在Java中


    public String Fill(String cacheName Object... varArgs) { 


     return "Sample return "+varArgs[0].toString()+" "+(new Integer(varArgs[1])); 

    } 

我的客戶是一個Python肥皂水客戶端。



import suds; 
import suds.client; 
url="http://localhost:8989/pakg1/services/JavaCache?wsdl" 
client=suds.client.Client(url) 
print client.service.Fill("level1,"Immediate",123123); 

 

WSDL顯示元素varArgs如下。


    xs:element maxOccurs="unbounded" minOccurs="0" name="varArgs" nillable="true" type="xs:anyType" 

但是在運行時沒有任何東西出現在Object數組中。當我嘗試以調試模式查看數組時,它顯示它爲空。

請指教如何將參數傳遞給Fill方法,以便我可以在varArgs參數中發送數組或單個基本類型。

謝謝, Dhawal。

回答

0

問題是在axis2方面。 Axis2無法反序列化Object並將其作爲DataHandler出錯。我決定通過OMElement傳入我的對象,然後反序列化我自己。

也報告了Axis2的問題。

謝謝

0

你試過把你的varArgs作爲python列表傳遞嗎?看看是否有這樣的工作:

client.service.Fill("level1",["Immediate",123123]) 
+0

我試過了,不行。 – kingpin 2011-03-21 14:24:36

+0

在此處添加更多信息。按照您的建議,服務方法Fill會在varArgs中接收數據處理程序的對象數組。有什麼建議麼?? – kingpin 2011-03-21 14:47:45

相關問題