我想以下列方式发布JSON中的客户列表:
@POST
@Path("/addCustomers/")
@Consumes(MediaType.APPLICATION_JSON)
public List<Customer> addCustomers(List<Customer> list){
logger.debug(list);
return list;
}
Request Header:
Content-Type: application/json
Request Body:
{"Customer":[{"id":2999,"name":"Som Awasthi"},{"id":3000,"name":"Arnav Awasthi"}]}
Response: "415: Unsupported Media Type" error.
此请求的输入是相同的,我在listCustomers调用中得到的内容如下:
@GET
@Path("/listCustomers")
public List<Customer> listCustomers(){
List<Customer> list = new ArrayList<Customer>();
list.add(new Customer("Som Awasthi", 2999L));
list.add(new Customer("Arnav Awasthi", 3000L));
return list;
}
所以我希望输入应该给我List对象。但它给了我不支持的媒体类型错误。
此致 阿纳夫
答案 0 :(得分:3)
最后,我通过一个讨论找到了解决方案:
摘要是: Apache-CXF 2.3.0和Jettison 1.2不支持此功能。所以我不得不将版本更改为2.3.4并且它有效。
示例应用程序: https://bitbucket.org/arnavawasthi/apache-cxf-jaxrs-spring
希望能帮助其他人面对同样的问题。
谢谢, Arnav
答案 1 :(得分:0)
尝试在您的请求中添加Accept标头:
Accept: application/json
另外,请确保您的请求绝对是POST。
编辑:
所以你传入的json是一个内部有数组的对象。尝试传递一个客户对象数组:
[{"id":2999,"name":"Som Awasthi"},{"id":3000,"name":"Arnav Awasthi"}]