HTTPクエリパラメータとして列挙値のリストを渡したいとします。サーバー側のエントリポイントは次のようになります。HTTPクエリパラメータとしてのenum値のリストの受け渡し
@GET
@Path("/getMyResult")
public MyResultType getMyResult(@QueryParam("me") final List<MyEnum> myEnums)
これは変更できません。 MyEnum
には、値MyValue1
,MyValue2
,MyValue3
およびMyValue4
が含まれているとします。 (MyResultType
は、この質問には関係ありません。)一つの値だけを渡すと、以下のように、(私にとっては少し奇妙である)正常に動作します:
http://localhost/getMyResult?me=MyValue1
しかし、要素のリストをこのように渡す:
http://localhost/getMyResult?me=[MyValue1,MyValue3,MyValue4]
またはこのよう:
http://localhost/getMyResult?me=MyValue1,MyValue3,MyValue4
またはこのよう:
http://localhost/getMyResult?me=["MyValue1","MyValue3","MyValue4"]
が動作しない、それがこの(最初のオプションにエラーメッセージ)のような例外何かをスロー:
RESTEASY001720: Unable to extract parameter from http request: javax.ws.rs.QueryParam(\"me\") [...]
No enum constant com.mycompany.myapp.MyEnum.[MyValue1,MyValue3,MyValue4]
誰がどのようにHTTP GETクエリパラメータとしてMyEnum
要素のリストを渡すことを教えてもらえますか?ありがとうございました!
あなたは 'HTTPを試してみました:// localhost /をgetMyResult私= MyValue1&私= MyValue2&私= MyValue3'? – khelwood
POSTメソッドを使って送ることができるので、Javaではアノテーションのみを変更して@QueryParamを使用しないでください – MaxG
@khelwood:ヒントのおかげで;それは解決策です(Jordi Castillaも提案しています) –