我想用我的 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.