如何在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