【发布时间】:2012-07-17 16:26:51
【问题描述】:
我想用我的 CXF Rest Client 传输一个 POJO 对象。它已经适用于 JAXB 注释对象。所以我做了很多尝试。
我试过了
reader.setEntityClass(ObjectPOJO.class);
类似的东西
reader.setEntityClass(JAXBElement<ObjectPOJO>.class);
两者都不起作用。对于第二次尝试,代码是错误的。我没有得到它来将实体类设置为 jaxbelement。也许它适用。
发送对象后:
Response response = client.path(PATH).post(new JAXBElement<ObjectPOJO>(new QName("pojo"), ObjectPOJO.class, pojoObject));
我试图通过不同的尝试来获取我的实体。比如:
ObjectPOJO pojo = ((JAXBElement<TenantPOJO>) res.getEntity()).getValue();
- 有人知道我是否必须注册 ObjectPOJO.class 或 JAXBElement.class。如果第二次尝试是正确的,那么它在代码中的表现如何?
- 从响应中取出实体的正确代码是什么?
我的服务如下所示:
@POST
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response postPojo(JAXBElement<ObjectPOJO> pojo);
编辑:
错误
ERROR org.apache.cxf.jaxrs.client.AbstractClient - .Problem with reading the response message, class : class javax.ws.rs.core.Response, ContentType : application/xml.
【问题讨论】:
标签: java rest serialization jaxb cxf