0

我写了一个小的 webservice[Axis2/Java],它公开了一个方法


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


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

   }

我的客户是 python suds 客户。



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 参数中的单个基本类型。

谢谢,达瓦尔。

4

2 回答 2

0

您是否尝试过将 varArgs 作为 python 列表传递?看看这样的事情是否有效:

client.service.Fill("level1",["Immediate",123123])
于 2011-03-21T13:44:52.693 回答
0

问题出在axis2方面。Axis2 无法反序列化 Object 并将其误认为是 DataHandler。我决定将我的对象作为 OMElement 传递,然后反序列化自己。

也报告了 Axis2 的问题。

谢谢

于 2011-04-11T02:26:12.273 回答