[英]CXF Rest Client - set ResponseReader for POJO (JAXBElement)
我想使用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();
我的服務如下所示:
@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.
要在其他客戶端和其他服務之間傳輸對象(PoJos),則無需使用顯式的JAXB轉換來傳輸它。 如果傳輸對象是JAXB帶注釋的對象,則Jersey容器負責必要的轉換。
Response response = client.path(PATH).post(postObject);
@XmlRootElement
public class PostObject
{
////
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.