POSTリクエストでリクエストボディに複数のパラメータを送信するにはどうすればよいですか?コード上CXF JAXRS - 複数のパラメータをPOSTする方法
@POST
@Consumes("multipart/form-data")
@Produces("application/json")
public String addForm1(@FormParam("i1") Integer i1, @FormParam("i2") Integer i2);
以下に示すように、Resource method has more than one parameter representing a request body
エラーで@Multipart
結果と@FormParam
の交換HTTP 415
を返します。
SEVERE: Resource method service.rs.TestService.postData2 has more than one parameter representing a request body
Exception in thread "main" org.apache.cxf.jaxrs.client.ClientWebApplicationException: Resource method service.rs.TestService.postData2 has more than one parameter representing a request body
at org.apache.cxf.jaxrs.client.ClientProxyImpl.reportInvalidResourceMethod(ClientProxyImpl.java:546)
at org.apache.cxf.jaxrs.client.ClientProxyImpl.getParametersInfo(ClientProxyImpl.java:214)
at org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:138)
at $Proxy20.postData2(Unknown Source)
at service.TestServiceClient.main(TestServiceClient.java:82)
また、私はそのようなPOSTメソッドでList<Map<String, String>>' or 'List<MyNestedCustomObject>
など、複数の複合型を渡すために何をすべきかが必要ですか?私はJAXB
を使ってそのようなパラメータを渡すことができますし、@XmlJavaTypeAdapter
でそれを注釈しますが、私は複数のパラメータを渡す場合にはうまくいかないと思いますか?私自身のメッセージ本文読者&作家を定義する必要がありますか?どんなサンプルコードでも便利です。
おかげ
。しかし、私のパラメータは単純ではないので、 '@ Multipart'パラメータを渡す必要があることを知りました。これらの型の2つのパラメータをPOSTする必要があります:1. List
@dominoうーん、あなたは私が直接アドバイスするのに十分よく知っているエリアの外に出ている。 http://cxf.apache.org/docs/jax-rs-multiparts.htmlは '@ Multipart' _or_を使用して' List 'の署名を使用するように言います。どのバージョンのCXFを使用していますか? –
私はファイル/添付ファイルを扱っていないので、 '@ Multipart'を試しました。 'List'が助けになるかどうかチェックします。私は2.5.2を使用しています。 **このページには、 '@ Multipart'を使用して複数のパラメータをPOSTするのが簡単であることが示唆されている**例が**あります。私は何かが足りないと思う。 –
domino