2012-03-26 6 views
0

Apache WinkをRESTサービスの実装に使用しています。配列またはリスト型のパラメータを受け取れないようです。 、文字列は、サーバー側では@FormParamは空リスト/配列(Apache Wink)のみを受け取ります

$.post(url, 
    { param: ['string1', 'param2', 'x', 'etc...etc....etc'], 
     str2: "str2"}, 
    function(data) {// do something  
}); 

とint型は(ヌルが、ゼロ要素ではない)正しく受信されているが、「PARAM」パラメータは常に空受け取られます:呼び出しがAJAX $ .postから作られています変数がString []、List、Set ...のいずれとして定義されているかを示します。

@POST @Produces("application/json") @Path("eee") 
public Response eee(@FormParam("str1") String str1, @FormParam("param") String[] param, @FormParam("str2") String str2) 

デバッグ中、Iのようなテーブルエントリとコンテキスト変数を見ることができる:受信機能は次のように定義されているPARAM」に変換

wink.formParameters=[param%5B%5D=string1,param%5B%5D=param2,param%5B%5D=x,param%5B%5D=etc...etc....etc,str2=str2] 

[] =文字列1、PARAM [] = param2、.. '、インデクシングなし。それが正しいかどうかわからない。

アイデア?

答えて

-1

これはと私は受け入れて変数を定義するときに私の作品:あなたはまた、同様に、クライアントのコールを微調整する必要があるかもしれません

@FormParam("paramName") List<String> paramList; 

:私は、これは古い問題であると認識

$.post(url, 
    { paramName: "string1", 
    { paramName: "string2", 
    { paramName: "string3", 
     str2: "str2"}, 
    function(data) {// do something  
}); 
+0

いくつかの構文上の問題があります。しかし、データ{x: "string1"、x: "string2"、x: "string3"、str: "str"}とリスト宣言では、リストは1つの要素(最後のもの)のみを取得します。 – user1292542

2

が、同様の問題がありましたが、FormParam名の最後に[]を追加して修正しました。

だからではなく、@FormParamを( "PARAM")を有する、あなたは@FormParam( "PARAM []")私も自分のデータをシリアル化するためにjQueryの$ .paramsメソッドを使用しています

ますが、私を持っているでしょうあなたのデバッグが適切にエンコードされたフォーム文字列を明らかにしたように見えるので、私はそれが欠落していると思っています。

関連する問題