0

メソッドを公開する小さなWebサービス[Axis2/Java]を作成しました


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


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

   }

私のクライアントはpythonsudsクライアントです。



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配列には何も入りません。デバッグモードで配列を調べようとすると、nullであることがわかります。

配列またはvarArgsパラメーターの単一の基本型を送信できるようにFillメソッドに引数を渡す方法をアドバイスしてください。

ありがとう、ダワル。

4

2 に答える 2

0

varArgsをPythonリストとして渡してみましたか?このようなものが機能するかどうかを確認します。

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

問題はaxis2側にあります。Axis2はオブジェクトを逆シリアル化できず、DataHandlerと間違えます。オブジェクトをOMElementとして渡してから、自分自身を逆シリアル化することにしました。

Axis2の問題も報告しています。

ありがとう

于 2011-04-11T02:26:12.273 に答える