@PUT
@Path("/customers/")
public Response updateCustomer(Customer customer) {
System.out.println("----invoking updateCustomer, Customer name is: " + customer.getName());
Customer c = customers.get(customer.getId());
Response r;
if (c != null) {
customers.put(customer.getId(), customer);
r = Response.ok().build();
} else {
r = Response.notModified().build();
}
return r;
}
这是我在apache cxf上面的sample上看见的。客户端传递了这样一个xml文件到服务器:
Jack
这样,apache cxf 就自动将 这个xml文件转成了对象。(参数是Customer customer)
如果是传递一个json对象,怎么做才能自动的转换成一个对象呢?是不是apache cxf里面有一个拦截器可以做到这一点?
简单来说你需要提供一个json处理器,比如jackson
<jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
</jaxrs:providers>
然后在方法上加上注解:@Consumes(MediaType.APPLICATION_JSON)
提示cxf处理json。
详细可以参考:http://cxf.apache.org/docs/jax-rs-data-bindings.html
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。