2016-09-02 4 views
3

私はGETメソッドを記述し、intの配列をQueryParamとして送信しようとしています。これは私がやろうとしています方法です:Jerseyで@QueryParamとしてintの配列を送信する

@GET 
@Path("/test") 
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
public Response test(@Context HttpServletRequest request, 
     @QueryParam("list") final int list[]) 
{ 
    System.out.println(list.length); 
    return Response.ok().build(); 
} 

これは完全に働いた、私は整数のリストを使用してみました500内部サーバーerror.Whenになります。 Jerseyが配列をパラメータとしてサポートしていないのですか、何か間違っていますか?

+0

あなたのtry @QueryParam( "リスト")リストを設定していますか? –

+0

@JekinKalariya私はintの配列を渡す必要があります、なぜ私はそれを試みるでしょうか? – doctore

+0

jersyは、配列をリストに変換したり、設定していれば試してみたりします –

答えて

2

パラメータとして配列をサポートしていないジャージでこの実装。

1) Be a primitive type; 
2) Have a constructor that accepts a single String argument; 
3) Have a static method named valueOf or fromString that accepts a single String argument (see, for example, Integer.valueOf(String)) 
4) Be List, Set or SortedSet, where T satisfies 2 or 3 above. The resulting collection is read-only. 

時々パラメータは可能性があります。あなたは配列としてそれを渡す必要があるとしてだけArrays.asList(arr)

Javaのドキュメントは、メソッドのパラメータの型があるべきと言う使用して配列にリストを変換することによって、それを渡します同じ名前に複数の値が含まれているこれが当てはまる場合は、4)を使用してすべての値を取得することができます。

この場合、配列を使用することはできません。

関連する問題