如何在POST請求中的請求正文中發送多個參數?CXF JAXRS - 如何POST多個參數
@POST
@Consumes("multipart/form-data")
@Produces("application/json")
public String addForm1(@FormParam("i1") Integer i1, @FormParam("i2") Integer i2);
以上代碼返回HTTP 415
與@Multipart
導致Resource method has more than one parameter representing a request body
誤差更換@FormParam
,如下所示。
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
對其進行註釋來傳遞此參數,但是我猜這在傳遞多個參數的情況下不起作用?我是否會被要求定義我自己的郵件正文閱讀器&作者?任何示例代碼都是有用的。
感謝
刪除'@ Consumes'幫助。然而,我意識到我需要通過'@ Multipart' params,因爲我的參數並不簡單。我需要POST 2這些類型的參數:1. List
@domino嗯,你正在外面的地方,我知道足夠直接建議。 http://cxf.apache.org/docs/jax-rs-multiparts.html表示使用'@ Multipart'或者'List'的簽名。你使用什麼版本的CXF? –
2012-03-09 09:21:59
因爲我沒有處理任何文件/附件,所以我嘗試了'@ Multipart'。將檢查'列表'可以有任何幫助。我使用2.5.2。在那裏**有**例子,似乎表明它應該直接使用'@ Multipart'來POST多個參數。我想我錯過了一些東西。 –
domino
2012-03-09 09:42:55